Streaming media presentation system

ABSTRACT

One or more embodiments of the disclosure provide systems and methods for providing media presentations to users of a media presentation system. A media presentation generally includes a one or more media streams provided by one or more capturing users of the media presentation system. In one or more embodiments, a user of the media presentation system may share a media presentation with a viewing user. The media presentation system can provide a number of features to produce a media stream within a media presentation.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.16/384,587 filed Apr. 15, 2019, which is a continuation of U.S.application Ser. No. 15/889,138 filed Feb. 5, 2018, now issued as U.S.Pat. No. 10,264,308, which is a continuation of U.S. application Ser.No. 14/964,340 filed Dec. 9, 2015, now issued as U.S. Pat. No.9,917,870, which claims priority to, and the benefit of U.S. ProvisionalApplication No. 62/183,612 filed Jun. 23, 2015. Each of theaforementioned patents and applications are hereby incorporated byreference in their entirety.

BACKGROUND 1. Technical Field

One or more embodiments relate to systems and methods for providingstreaming media content to multiple users. More specifically, one ormore embodiments of the present invention relate to systems and methodsfor distributing streaming media content among multiple users.

2. Background and Relevant Art

Advancements in computing devices and computing technology provide userswith the ability to share user-generated media with other users. Assuch, users are increasingly capturing and sharing media using variouscomputing devices. To illustrate, modern mobile devices enable users tocapture media, such as pictures, videos, audio, and text. In addition tosharing pictures, videos, audio, and text, some conventional systemsallow users to stream media content to other users. For example, theuser can stream captured media to the others users via a media stream.Further, if a user is capturing live content, the user can share a mediastream with the live content with the other users. For example, a usercan share user-generated media with a group of friends via a variety ofcommunication systems (e.g., IM, text, or social networks).

Despite advances in technology, a number of drawbacks remain for a userwanting to share user-generated media with other users. For example,conventional systems do not distribute or share videos in an intuitiveand efficient manner. Thus, when a user wants to share user-generatedstreaming media, conventional systems statically distribute theuser-generated streaming media to only viewing users chosen by the user.Further, when multiple users are capturing user-generated media streamsof the same event (e.g., a concert), conventional systems stream eachmedia stream separately, resulting in a multiple unrelated media streamsthat are difficult for viewing users to navigate, locate, and enjoy asrelated media streams of the same event.

From the perspective of viewing users, many conventional systems do notaccount for the interests of the viewing users, and thus, a viewing usermay have to navigate through several media streams trying to find astream that is of interest to the recipient user, which is timeconsuming and frustrating. For example, when a viewing user wants toswitch between two media streams of the same event, the viewing user mayhave to perform numerous navigational steps to relocate the other mediastream. In addition, when the content within the media streams is live,the viewing user misses much of the live content spending timenavigating through several media streams to locate a desired mediastream.

Along similar lines, in many conventional systems, often users shareuser-generated streaming media irrespective of the quality or nature ofthe user-generated streaming media being shared. As a result,conventional systems often provide poor quality user-generated mediastreams to viewing users, resulting in a poor viewing experience. Forexample, conventional systems often provide user-generated media thatincludes shaky video and/or long tedious pauses. Moreover, becauseconventional systems do not distinguish between good quality or poorquality media streams, viewing users are often have to watch portions ofpoor quality or tedious media streams while navigating through varioususer-generated media streams to find a quality media stream.

As an additional problem, conventional systems do not provide a viewinguser the ability to easily control the viewing experience of theuser-generated streaming media. For example, most conventional systemssimply provide a viewing user the user-generated media stream withoutallowing the viewing user to pause, replay, or otherwise navigate withinthe user-generated media stream. As a result, in conventional systems, aviewing user that joins a live user-generated media stream of an eventafter the event has begun can only watch the event from the currentmedia stream position forward, thus reducing the viewing user's abilityto understand and experience the complete context of a user-generatedmedia stream. Often, the inability of conventional systems to allow aviewing user to “catch up” to the live position of the user-generatedmedia stream can frustrate the viewing user to the point of choosing tonot experience any of the user-generated media stream.

Accordingly, there are a number of considerations to be made inimproving a user experience in relation to producing, sharing,distributing, and consuming user-generated streaming media.

SUMMARY

One or more embodiments described herein provide benefits and/or solveone or more of the foregoing or other problems in the art with systemsand methods of capturing and sharing collaborative streaming mediacontent between users. For example, one or more principles describedherein provide systems and methods that intelligently share, as well as,organize streaming media in an intuitive and efficient manner.Additionally, one or more principles described herein provide systemsand methods that produce, or provide tools to enable a user to easilyproduce, enhanced streaming media that provides a higher qualitystreaming media presentation that can include multiple relateduser-generated media streams. Moreover, one or more principles describedherein provide systems and methods that enable a user to navigate withina live user-generated media stream during the media presentation of thelive user-generated media stream.

To illustrate, one or more embodiments described herein provide systemsand methods that provide a number of features that assist users insharing media streams with other users. For example, the systems andmethods described herein determine one or more media characteristics ofa media stream, and based on the determined media characteristics,identify one or more users with whom to share the media stream (e.g., adistribution audience). In some example embodiments, the systems andmethods dynamically detect a change in one or more media characteristicsof a media stream, and based on the changes to the one or more mediacharacteristics, the systems and methods modify the distributionaudience of a media stream. For example, based on a characteristicchange for a media stream, the systems and methods can increase ordecrease the size of the user audience to which the media stream isshared.

Additionally, in some example embodiments, the systems and methodsenhance the quality of a media stream. In particular, based on the mediacharacteristics on the media stream, the systems and methods can applyproduction edits to the media stream to improve the quality of the mediastream. For example, the systems and methods can improve the videoquality of a media stream (e.g., correct for shakiness of the mediastream, or remove long portions of video that do not include anyaction). As another example, the systems and methods can enhance theaudio quality of a media stream using noise filtering, equalization, andvolume adjustments.

In additional or alternative example embodiments, the systems andmethods mix multiple media streams into a production media stream. Morespecifically, the systems and methods may produce—or provide tools thatenable a user to easily produce—a production media stream based onmultiple users providing media streams of the same subject matter (e.g.,switching between two or more media streams to provide different anglesof the same event). In further embodiments, the systems and methods candetermine, based on one or more characteristics of each media stream,which media stream to present in the production media stream that isprovided to the viewing users. For instance, the systems and methods mayassign a weight to characteristics such as steadiness, image quality,audio quality, and/or facial recognition when selecting a media streamto present in the production media stream. Further, as thecharacteristics of each media stream change, the systems and methods candynamically update which media is used to in the production media streamprovided to the viewing users.

As yet another example, the systems and methods described herein canallow a viewing user to navigate within a media stream providing livecontent. For instance, the systems and methods can allow a viewing userto skim and/or replay notable moments from a pervious portion of a livemedia stream. For example, when a viewing user begins to view a mediastream that is mid-way through a live event, the systems and methodsprovide the viewing user with notable moments, such as highlights, thatoccurred between the beginning of the media stream and the viewing useraccessing the media stream. Additionally, for example, the systems andmethods can provide navigation tools to a viewing user to quickly andeasily navigate between viewing the media stream and notable moments. Assuch, the viewing user can quickly be brought up to speed and understandthe present context of a media stream, even when accessing a mediastream well after the beginning of the event.

Additional features and advantages will be set forth in the descriptionwhich follows, and in part will be obvious from the description, or maybe learned by the practice of such exemplary embodiments. The featuresand advantages of such embodiments may be realized and obtained by meansof the instruments and combinations particularly pointed out in theappended claims. These and other features will become more fullyapparent from the following description and appended claims, or may belearned by the practice of such exemplary embodiments as set forthhereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above recited and otheradvantages and features of one or more embodiments can be obtained, amore particular description will be rendered by reference to specificembodiments thereof that are illustrated in the accompanying drawings.It should be noted that the figures are not drawn to scale, and thatelements of similar structure or function are generally represented bylike reference numerals for illustrative purposes throughout thefigures. These drawings depict only typical embodiments, and are nottherefore considered to be limiting of its scope. Accordingly, variousembodiments will be described and explained with additional specificityand detail using the accompanying drawings.

FIG. 1 illustrates a schematic diagram of a communication system inaccordance with one or more embodiments described herein;

FIG. 2 illustrates a schematic diagram of a media presentation system incommunication with one or more client devices in accordance with one ormore embodiments described herein;

FIGS. 3A-3B illustrate a sequence-flow diagram of a media presentationsystem in accordance with one or more embodiments;

FIGS. 4A-4C illustrate a sequence-flow diagram showing the mediapresentation system communicating with a viewing user and multiplecapturing client devices in accordance with one or more embodiments;

FIG. 5 illustrates an event venue where multiple users of the mediapresentation system may be capturing media streams of an event inaccordance with one or more embodiments;

FIG. 6 illustrate exemplary media streams provided by capturing clientdevices associated with users at the event of FIG. 5 in accordance withone or more embodiments;

FIG. 7 illustrates a sequence-flow diagram showing a method for creatinga production media stream in accordance with one or more embodiments;

FIG. 8 illustrates a flowchart of a method for dynamically providing amedia stream to one or more users in accordance with one or moreembodiments;

FIG. 9 illustrates a flowchart of a method for producing a media streamfrom a plurality of related media streams in accordance with one or moreembodiments;

FIG. 10 illustrates a flowchart of a method for identifying andproviding notable moments of a media stream in accordance with one ormore embodiments;

FIG. 11 illustrates a block diagram of a client device in accordancewith one or more embodiments;

FIG. 12 illustrates a network environment of a social networking systemin accordance with one or more embodiments described herein; and

FIG. 13 illustrates an example social graph of a social networkingsystem in accordance with one or more embodiments described herein.

DETAILED DESCRIPTION

Embodiments disclosed herein provide benefits and/or solve one or moreof the abovementioned or other problems in the art with a mediapresentation system that improves a user's experience for sharing andviewing a media stream. In particular, the media presentation systemintelligently, produces, organizes, and shares a media stream in anintuitive and efficient manner. In some embodiments, for example, themedia presentation system provides a user the ability, via a clientdevice, to capture and provide a media stream (e.g., a video mediastream) that the user intends to share with one or more other users(e.g., viewing users). Additionally, based on various features,preferences, and/or characteristics of a user, viewing users, and/or amedia stream, the media presentation system can dynamically determinehow to distribute a media stream (e.g., identify viewing users with whomto share a video stream). Moreover, in one or more embodiments, themedia presentation system can modify one or more media streamcharacteristics and/or combine multiple media streams to produce a moreenjoyable media stream to provide to viewing users. In addition, one ormore examples of the media presentation system provide variousnavigation features during the presentation of a media stream thatallows a user to customize the viewing experience of the media stream.

As briefly mentioned above, in one or more embodiments, the mediapresentation system can intelligently distribute a media stream, such asto a particular viewing user, a particular group of viewing users,and/or viewing users having a particular attribute. In particular, themedia presentation system analyzes various types of data relating to acapturing user, a viewing user, and/or a media stream to dynamicallydetermine a distribution audience for a particular media stream. Forinstance, the media presentation system can identify a distributionaudience based on characteristics of the media stream. For example, themedia presentation system can determine a size of a distributionaudience based on determining a quality level corresponding to the mediastream (e.g., if the media stream includes shaky video and/or poor audioquality, the media presentation system may limit the audience size). Asthe characteristics of the media stream change, the media presentationsystem can modify the size of the distribution audience.

Additionally, the media presentation system can monitor interactions andfeedback from viewing users corresponding to the media stream, and,based on the interactions and feedback, modify the distribution audience(e.g., the media presentation system may expand or reduce distributionof a media stream in response to positive or negative feedback). Themedia presentation system can also determine a distribution audience fora media stream based on various other media stream characteristics, aswill be further discussed below. Further, in addition to distributing amedia stream based on media characteristics of the media stream, themedia presentation system can also determine a distribution audiencebased on profile attributes and preferences of a viewing user (e.g.,geographic location, user interests, custom audiences).

In some example embodiments, the media presentation system can detectthat multiple users are capturing and sharing related media streams(e.g., media streams captured at the same event). In response, the mediapresentation system may produce a production media stream using therelated media streams. For example, for each of the related mediastreams, the media presentation system may consider the angle and/orperspective (e.g., close-up verses panoramic wide-angle), subject matterbeing captured, facial-recognition, the length of time a media streamhas been featured, the audio-quality, whether the media stream isredundant, view count, likes, shares, etc. Further, the mediapresentation system can mix in various aspects of multiple media streamsto enhance the overall quality of a mixed media stream, such asswitching video between three media streams, while using the audio froma single media stream that includes the highest audio quality.

Additionally, in one or more embodiments, the media presentation systemmay provide a viewing user with the ability to easily navigate contentwithin a media presentation, enabling the viewing user to customizetheir viewing experience. For example, a viewing user may begin viewinga media stream after the media stream commences. In such a case, themedia presentation system may provide previous media segments of theevent that allow the viewing user to replay notable moments from theevent and/or catch up to the live action. Further, in some exampleembodiments, the media presentation system may identify past portions ofa media stream that correspond to a viewing user's interests and/orpreferences.

Accordingly, one or more embodiments of the media presentation systemovercome one or more disadvantages of conventional systems by enabling auser to efficiently capture media and share a media stream of the mediawith one or more viewing users. In addition, the media presentationsystem provides an enjoyable user experience to a viewing user byproviding the most relevant and highest quality media streams to theviewing user, while also providing the viewing user various controlfeatures that enhances the user's ability to navigate and/or otherwiseexperience a media stream presentation. Additional details andadvantages will be described below.

The term “media,” as used herein, refers to digital data that may betransmitted over a communication network. Examples of media include, butare not limited to, digital photos, digital videos, digital audio,and/or other types of digital data. Accordingly, media may refer toimages, video, audio, text, documents, animations, screen sharing, orany other audio/visual data that may be transmitted over a communicationnetwork. In general, media includes captured media content or simplycontent. As such, media can include content, such as user-generatedcontent (e.g., content that a user captures using a media capturingdevice such as a smart phone or a digital camera) as well asnon-user-generated media (e.g., content generated by a entity orthird-party). In addition, media can be transmitted in various formsusing various types of technology. Further, a media presentation systemcan transmit media in the form of a discrete file, or additionally, themedia presentation system can send media in the form of streamingdigital content (i.e., a media stream).

The term “media stream,” as used herein refers generally to a flow ofmedia that is provided over time. An example of a media stream caninclude a stream of live, near-live, or semi-live media from onecomputing device to one or more other computing devices. In someinstances, a media stream broadcasts previously captured content. Amedia stream can include sending packets of data from one computingdevice to another computing device. In general, a media stream includessending images, videos, and/or audio between computing devices. Further,when a computing device sends a media stream, the computing device mayencode and/or encrypt a media stream before transmitting the mediastream to the one or more other computing devices.

The term “media segment,” as used herein refers generally to a discreteportion of media. For example, a media segment can include an imageportion, video portion, and/or an audio portion comprising media form amedia stream. For instance, a computing device that sends or receives amedia stream can store a portion of the media stream as a media segment.As such, a media segment may include a video clip and/or an audio cliptaken from a media stream. In some example embodiments, a media segmentmay include a portion of discrete media that is not obtained from amedia stream, such as a media segment digitally created by a user (e.g.,an animated video).

As used herein, the term “media presentation” refers to a defined set ofone or more media streams and/or media segments. For example, a mediapresentation can include a plurality of related media streams and/ormedia segments. Accordingly, in one or more embodiments, a mediapresentation can include a compilation of media streams and/or mediasegments. For instance, a media presentation may include related mediastreams provided by multiple users at a common location or event. Insome cases, a media presentation can include a single media stream,provided by a user and shared with other users. In general, the mediapresentation system will provide one or more media presentations to aviewing user in a media presentation feed, and the viewing user canselect a media presentation to access one or more media streams and/ormedia segments corresponding to the media presentation. Further, as usedherein, the term “media presentation feed” refers generally to acollection of one or more media presentations that are presented to aviewing user. For example, a client device can present a viewing userwith a media presentation feed that includes multiple mediapresentations, with each media presentation organized chronologically,or by topic, user, channel, and/or additional organizational groupings.

The term “media characteristic” refers to features and attributesassociated with media, such as media within a media stream or a mediasegment. Media characteristics can include both attributes of the mediaitself as well as metadata associated with the media. Examples of mediacharacteristics include, but are not limited to, audio/video quality,connection strength to a communication network being used to provide amedia stream, facial and object recognition, angles and perspectives,geographic location, time, redundancy, etc. Further, mediacharacteristics can include interactions and feedback from viewingusers, including implicit interactions (e.g., number views) and explicitfeedback (e.g., likes, comments, shares, etc.). Additional detail andexamples regarding media characteristics are provided below in thedetailed description.

As used herein, the terms “interact” or “interacting” refer generally toany type of interface activity between a user and a client device. Inone or more embodiments, interacting can include a user capturing mediaor viewing, browsing, accessing, and/or otherwise experiencing media.Moreover, interacting can include selecting graphical elements on agraphical user interface provided by a client device, such as selectingmenu options or graphical buttons to capture media, access a mediastream, replay a media segment from a media stream, approve a capturedmedia segment, request a captured media segment be added to a mediapresentation, or other additional actions. In one or more embodiments, auser can interact with a client device using one or more user inputdevices, such as a touch screen, touchpad, keyboard, or mouse.

FIG. 1 illustrates an example embodiment of a communication system 100(or simply, “system 100”) in accordance with one or more embodimentsdescribed herein. As shown, the system 100 may include one or moreserver(s) 101 that include a media presentation system 102, a viewingclient device 104, and a capturing client device 105 that arecommunicatively coupled through a network 106. Although FIG. 1illustrates a particular arrangement of the media presentation system102, the viewing client device 104, the capturing client device 105, andthe network 106, various additional arrangements are possible. Forexample, the viewing client device 104 and/or the capturing clientdevice 105 may directly communicate with the media presentation system102, bypassing the network 106.

Optionally, the system 100 may include one or more server(s) 107 thatinclude a social networking system 108. When the system 100 includes thesocial networking system 108, users of the social networking system 108may be able to use the features and functionalities of the mediapresentation system 102, as described herein, via the social networkingsystem 108. In some example embodiments, the media presentation system102 may be a part of, or directly connected to, the social networkingsystem 108. In other example embodiments, the media presentation system102 is separate from the social networking system 108, but users of thesocial networking system 108 can access the media presentation system102 via the social networking system 108.

In the event the media presentation system 102 interfaces with thesocial networking system 108, the viewing user 110, and/or the capturinguser 112 may be associated with the social networking system 108. Forexample, the capturing user 112 may authorize the media presentationsystem 102 to access the social networking system 108 to obtaininformation about the capturing user 112, such as the user's profile,social network behavior, social networking contacts, and affinity toeach social networking contact. The media presentation system 102 mayalso use the social networking system 108 to share media presentationsamong users of the media presentation system 102. For instance, acapturing user 112 may capture media, associate the captured media witha media presentation, and send the media presentation to the socialnetworking system 108. Further, the social networking system 108 mayprovide the media presentation to the viewing user 110 via the socialnetworking system 108.

Regardless of the presence of the social networking system 108, thecomponents of the system 100, including the one or more server(s) 101,the viewing client device 104, the capturing client device 105, and theone or more optional server(s) 107 can communicate via the network 106.The network 106 may include one or more networks and may use one or morecommunication platforms or technologies suitable for transmitting dataand/or communication signals. Additional details relating to the network106 are explained below with reference to FIGS. 12-13.

As further illustrated in FIG. 1, a viewing user 110 may interact withthe viewing client device 104, and a capturing user 112 may interactwith the capturing client device 105. The viewing user 110 and thecapturing user 112 may each be an individual (i.e., human user), abusiness, a group, or any other entity. For purposes of explanation,FIG. 1 illustrates only one viewing user 110 and one capturing user 112,however, it should be understood that the system 100 may include anynumber of viewing users and/or capturing users interacting with thesystem 100 using one or more corresponding client devices. Likewise, itshould be understood that the terms “viewing user” and “capturing user”are generally used for purposes of explanation, and that the viewinguser 110 and the capturing user 112 are both simply users of the mediapresentation system 102 and are both capable of capturing, sharing, andaccessing media using the media presentation system 102.

As mentioned above, the viewing user 110 and the capturing user 112 mayinteract with the viewing client device 104 and the capturing clientdevice 105, respectively, to communicate with the media presentationsystem 102 and/or social networking system 108. For purposes ofexplanation, the viewing client device 104 and the capturing clientdevice 105 are sometimes collectively referred to as “client devices.”The client devices may represent various types of client devices. Forexample, the client devices can include a mobile device, such as amobile telephone, a smartphone, a PDA, a tablet, or a laptop.Furthermore, client devices can include a non-mobile device, such as adesktop or server. In addition, the client devices may include displaydevices such as televisions, LCD displays, LED displays, monitors,projectors, etc. Generally, as used herein, client devices can includeany type of computing device. Additional details and examples withrespect to the client devices are discussed below with respect to FIG.11.

In general, the client devices may enable a user (e.g., the viewing user110) to view one or more media presentations, for example, as part of amedia presentation feed. For example, the client devices includeprocessing components and a display screen that enable a user to view amedia stream. Additionally, the client devices can also includecomponents to capture media, as well as send the captured media to othercomputing devices. For instance, the client devices include video and/oraudio capturing components, such as a camera and/or a microphone, thatallow a user to capture media and provide the captured media in a mediastream. Further, the client devices can also include components toreceive captured media from other devices. Alternatively, some clientdevices may be limited to only provide viewing capabilities or onlyprovide capturing capabilities.

Regardless of the particular components or arrangement of components ofthe system 100, the media presentation system 102 generally allows usersof the system to capture, produce, distribute, and/or access/view mediapresentations. As a non-limiting overview example, the capturing user112 can capture media and provide a media stream using the capturingclient device 105 (e.g., provide a stream of live digital video). Basedon media characteristics of the provided media stream, the mediapresentation system 102 determines a group of viewing users to includein a distribution audience. The media presentation system 102 canmonitor the media characteristics, and based upon a change in the mediacharacteristics, the media presentation system 102 can dynamicallyupdate the distribution audience. A viewing user 110 belonging to thedistribution audience uses the viewing client device 104 to view themedia stream as part of a media presentation. Further, if the viewinguser 110 requests to view missed portions of the media presentation, themedia presentation system 102 can identify media segments from the mediapresentation that are of interest to the viewing user 110, and presentthe media segments to the viewing user 110 as part of the mediapresentation. Additional details relating to the media presentationsystem will be explained in greater detail below.

In particular, FIG. 2 illustrates a schematic diagram of one or moreserver(s) that include a media presentation system 102 in communicationwith one or more client devices 204. The media presentation system 102in FIG. 2 can represent one or more embodiments of the mediapresentation system 102 discussed above with reference to FIG. 1.Similarly, the client device 204 shown in FIG. 2 may represent one ormore embodiments of the viewing client device 204 and/or the capturingclient device 105 discussed above with reference to FIG. 1. Forinstance, the media presentation system 102 and the client device 204 inFIG. 2 can be part of the communication system 100 illustrated in FIG.1.

As illustrated in FIG. 2, the media presentation system 102 includes,but is not limited to, a media stream manager 208, a mediacharacteristic evaluator 210, a media presentation producer 212, adistribution manager 214, a media presentation database 216, and a userprofile database 218. In general, the media stream manager 208 canreceive and recognize media streams captured and provided by the clientdevice 204. The media characteristic evaluator 210 may regularlyevaluate the media streams for media characteristics and provide thecorresponding media characteristics to the media presentation manager212. The media presentation manager 212 may use the mediacharacteristics to select a media stream to include in a mediapresentation to one or more viewing users. Further, based on the mediacharacteristics, for example, the distribution manager 214 may determinea distribution audience of viewing users to whom to send the productionmedia stream, as well as, update the distribution audience when based onchanges to the media characteristics. The media presentation database216 can maintain a plurality of media presentations and/or mediasegments, and the user profile database 218 can maintain userinformation for users of the media presentation system 102.

Each component of the media presentation system 102 may be implementedusing a computing device including at least one processor executinginstructions that cause the media presentation system 102 to perform theprocesses described herein. In some embodiments, the components of themedia presentation system 102 can be implemented by a single serverdevice, or across multiple server devices. Although a particular numberof components are shown in FIG. 2, the media presentation system 102 caninclude more components or can combine the components into fewercomponents (such as a single component), as may be desirable for aparticular embodiment.

As briefly mentioned in the above overview of the media presentationsystem 102, and as illustrated in FIG. 2, the media presentation system102 includes a media stream manager 208. The media stream manager 208,in general, manages media streams. More specifically, when a clientdevice, such as a capturing client device, provides a media stream tothe media presentation system 102, the media stream manager 208receives, recognizes, and processes the incoming media stream.

As part of recognizing a media stream, the media stream manager 208 mayidentify information corresponding to the media stream. For example, themedia stream manager 208 may identify the identity of the capturing userassociated with the media stream. The media stream manager 208 may alsoidentify any description data associated with the media stream. Forexample, the capturing user can provide a title, topic, or otherdescription for the media stream, and the media stream manager 208 cancapture the description data for purposes of organizing and distributingthe media stream. In addition, the media stream manager can identifyother data associated with the media stream, such as a locationassociated with the media stream, whether the media stream includes livecontent, and/or any other data that may be associated with the receivedmedia stream.

In one or more embodiments, the media stream manager 208 receivesmultiple media streams from multiple capturing users. Based on receivingmultiple media streams, the media stream manager 208 can determine ifany of the media streams relate to each other. In particular, the mediastream manager 208 can determine when two or more media streams areproviding content from a common location at the same time and/orcapturing the same subject matter. For example, the media stream manager208 can determine that two media streams providing media of the samemusic performance at the same concert and at the same time are relatedto each other.

The media stream manager 208 can determine that two or more mediastreams are related based on a number of factors. For example, the mediastream manager 208 can match audio or video patterns (e.g., flashes oflight at a concert or audio frequencies) from two or more media streamsto determine a relation. As another example, the media stream manager208 can determine that two media streams are received from clientdevices that are within a threshold proximity of each other, such as atthe same event, venue, location, etc. In some cases, the media streammanager 208 may match labels or tags associating with two or more mediastreams to determine whether the two or more media streams are related.Additional detail with respect to determining whether media streams arerelated is provided below.

In addition to the media stream manager 208, and as shown in FIG. 2, themedia presentation system 102 includes a media characteristic evaluator210. The media characteristic evaluator 210, in general, determines oneor more media characteristics for a received media stream. Morespecifically, the media characteristic evaluator 210 analyzes mediastreams received from capturing client devices to identify mediacharacteristics associated with the media streams. Further, because themedia characteristics of a media stream can constantly change, the mediacharacteristic evaluator 210 can dynamically monitor, analyze, andidentify media characteristics for each media stream over the timeperiod in which the media presentation system 102 receives the mediastream.

The media characteristic evaluator 210 may determine a number of mediacharacteristics for a media stream, such as video characteristics, audiocharacteristics, and/or metadata characteristics. To illustrate, themedia characteristic evaluator 210 can identify video characteristicsfor a media stream such as video resolution, aspect ratio, frames persecond, refresh rate, video quality, etc. Likewise, the mediacharacteristic evaluator 210 can identify video characteristics takenfrom video data associated with a media stream. For example, the mediacharacteristic evaluator 210 can analyze a media stream to identify oneor more video characteristics from the media stream (e.g., blurriness,shakiness, focus, color palate, brightness, contrast, etc.).

In addition to video characteristics, the media characteristic evaluator210 can identify and/or detect audio characteristics of a media stream,such as the audio quality, clarity, sound levels, noise levels,interference, echoes, feedback, etc. In addition, the mediacharacteristic evaluator 210 can analyze a media stream and determine acomposite audio characteristic that represents the overall quality ofthe audio in a media stream. For example, as the media characteristicevaluator 210 analyzes audio from a media stream, the mediacharacteristic evaluator 210 compare the composite audio characteristicto a threshold that defines an acceptable composite audiocharacteristic. Alternatively or additionally, the media characteristicevaluator 210 can analyze and compare individual audio characteristicsto individual threshold levels related to each individual audiocharacteristic.

Further, as mentioned above, the media characteristic evaluator 210identifies metadata characteristics. Examples of metadatacharacteristics include information about the media stream, such as ifthe media stream is live, near-live, or semi-live (e.g., delayed 2seconds, 5 seconds, over 10 seconds, etc.), the location or venue ofwhere the media stream is being captured (e.g., via GPS, WI-FI, and/ortriangulation), labels and tags associated with the media stream, thecardinal direction of the capturing client device providing the mediastream (e.g., the direction of the camera on the capturing clientdevice), gyroscopic information corresponding to the capturing clientdevice (e.g., how the capturing client device is tilting, rolling, andotherwise moving in three-dimensional space), whether an influentialperson or sponsor is providing the media stream, etc. Additionalexamples of metadata characteristics include timing of a media stream(e.g., when the media stream started), duration of the media stream, aswell as the number of views, likes, etc. of the media stream.

In some embodiments, the media characteristic evaluator 210 can alsodetermine media characteristics with respect to the content within themedia stream. For example, the media characteristic evaluator 210 canuse object or feature recognition to determine if the media streamincludes an identifiable feature, such as a landmark, well-known object,brand, symbol, animal, etc. Similarly, the media characteristicevaluator 210 can use optical character recognition (OCR) to recognizecharacters and words within the media stream. As another example, themedia characteristic evaluator 210 can use facial recognition todetermine if the media stream includes one or more persons, and inparticular, if the media stream includes a well-know person such as acelebrity or other influencer. Further, in some instances, the mediacharacteristic evaluator 210 may use voice recognition to determine if aparticular sound or person (e.g., as an announcer, singer, actor, etc.)is captured within the media stream.

In some embodiments, the media characteristic evaluator 210 analyzes thecontent in a media stream to determine the camera angle of the capturingclient device capturing the media stream. For example, the mediacharacteristic evaluator 210 determines that one capturing client deviceis providing a close-up shot while another capturing client device isproviding a wide-angle shot of the same subject matter. Further, themedia characteristic evaluator 210 may determine that two media streamsare both pointing the same direction and/or providing close up shots ofthe same subject matter, and that the two media streams are providingdifferent angles of the subject matter. The media characteristicevaluator 210 evaluate various other types of media characteristics, aswill become more apparent with the description below.

The media characteristic evaluator 201 can provide data to the mediapresentation producer 212, as shown in FIG. 2. The media presentationproducer 212 can create a production media stream to include within amedia presentation to be shared with one or more viewing users. Ingeneral, the media presentation producer 212 can create a productionmedia stream using one or more media streams received from one or morecapturing client devices and taking into account media characteristicsof the one or more media streams provided by the media characteristicevaluator 210. In one example, the media presentation producer 212 canselect a media stream to create a production media stream to provide ina media presentation based on the media characteristics associated withthe media stream, and in another example, the media presentationproducer 212 can select and combine or otherwise mix two or more mediastreams to create a production media stream based on the mediacharacteristics associated with the two or more media streams.

The manner in which the media presentation producer 212 selects mediastreams and/or creates production media streams can vary from oneembodiment to the next based on several factors. In one or moreembodiments, the media presentation producer 212 may analyze multiplemedia characteristics of a media stream in a weighted algorithm todetermine whether the media stream measures up to minimum productionstandards before creating a production media stream to share with one ormore viewing users. For instance, if a media stream that includes videois too shaky, the audio contains too much background noise, or thecommunication signal providing the media stream is weak, the mediapresentation producer 212 may determine not to include the media streamin a media presentation. In such a case, the media presentation producer212 can determine to enhance the media stream with production editsprior to sharing the media stream in a media presentation. In addition,using a weighted algorithm, the media presentation producer 212 canselect a quality media stream and determine to distribute the qualitymedia stream with little or no production edits.

The weighted algorithm can optimize the media presentation system'sability to distribute media streams that viewing users will enjoy by notdistributing media streams that have little value. For instance, theweighted algorithm can assign a higher importance to video quality andaudio quality compared to other types of media characteristics. On theother hand, the weighted algorithm can assign a very high importancebased on the capturing user. For instance, if a famous capturing userprovides a media stream, the likelihood that user's find value in themedia stream increases, even in the event that the video and/or audioquality are low. Thus, each media characteristic can be assigned apriority within the weighted algorithm such that the media presentationsystem distributes media streams that have value to viewing users. Inone or more embodiments, a viewing user can set a priority to one ormore media characteristics to customize how the media presentationproducer 212 selects and creates media presentations for the particularviewing user.

As mentioned above, the media presentation producer 212 can apply avariety of production edits to a media stream to improve the productionquality of the media stream. As one example, the media presentationproducer 212 applies image stabilization techniques to reduce theshakiness in a video of a media stream. For instance, in some cases, themedia presentation producer 212 uses the gyroscopic information, whichindicates movement of the capturing device, to counterbalance and steadythe video. As another example, the media presentation producer 212applies audio filters to reduce noise, equalize specific frequencies,and/or increase the volume of voices in the media stream. The mediapresentation producer 212 can also apply other editing and filteringtechniques to improve the production quality of a media stream.

As another example, the media presentation producer 212 may crop a mediastream as part of a production edit. To illustrate, the mediapresentation producer 212 can apply a square cropping to a media stream.Thus, if the media presentation producer 212 receives a 16:9 aspectratio media stream, the media presentation producer 212 crops the mediastream to a 9:9, or 1:1, aspect ratio. In cropping a media stream, themedia presentation producer 212 may dynamically adjust the position ofthe crop within the media stream at each frame to continually focus onthe relevant content within the media stream. For example, if the mediastream is capturing a sports play that moves from left to right withinthe media stream, the center of the crop may also shift from left toright to capture the sports play (e.g., follow a football in a video).

In addition, the media presentation producer 212 may determine whetherto crop a media stream based on the capabilities and/or orientation of aviewing client device. For example, the media presentation system 102can initially provide a square media stream to a viewing user. Upon theviewing user focusing on the media stream (e.g., providing user input tomake the media stream full screen) and/or orientating the display oftheir viewing client device lengthwise, the media presentation system102 provides the wider-angled, less-cropped, media stream to the viewinguser.

Further, the media presentation producer 212 may cut away from a mediastream when the media presentation system 102 detects a drag in themedia stream (e.g., based on media characteristics and/or based onanalyzing the media stream), and supplement the media stream withadditional content. For example, upon the media presentation producer212 detecting a long period of silence or lag (e.g., a period ofuneventful content) in a media stream, the media presentation producer212 may replay one or more notable moments from the media stream. Forinstance, if the media stream is of a concert, and the mediapresentation producer 212 detects a break between artists performing,the media presentation producer 212 can replay highlights from aprevious artist's performance, perhaps from a different media streamshowing a different angle. Alternately, the media presentation producer212 can insert a media stream from a sponsor, such as an advertisement,or associate a replay with a sponsor (e.g., this replay brought to youby SPONSOR.)

In some cases, however, even after the media presentation producer 212applies production edits to a media stream, the media stream or portionsof the media stream may still not meet minimum production standards orquality levels for adding the media stream to a media presentation. Inthese cases, the media presentation producer 212 may notify thecapturing user that the quality of the media stream is too low. Inaddition, the media presentation producer 212 may provide, as part ofthe notification, the media characteristic(s) that fail to satisfy theminimum standards (e.g., a notification that the signal strength is tooweak). Alternatively, presentation producer 212 may add the media streamto a media presentation and provide the media presentation to thedistribution manager 214 regardless of the production quality level.

As mentioned above, in one or more example embodiments, the mediapresentation producer 212 creates a production media stream by usingmultiple media streams. As an example, if multiple users are providingmedia streams that are captured at the same event, the mediapresentation producer 212 can create a production media stream of theevent that includes portions from each of the multiple media streams. Inother words, the media presentation producer 212 may switch or cutbetween each of the multiple media streams to produce a production mediastream of the event. For instance, the media presentation system 102 canestablish a media stream connection with a client device associated witha viewing user, and the media presentation producer 212 can alternatebetween providing each of the multiple media streams via the mediastream connection with the client device.

In determining which media stream form the multiple media streams to usewhen creating a production media stream, the media presentation producer212 may consider the media characteristics of each media stream. As anexample, two capturing users can each provide a media stream of aperformer at a concert. Based on the media characteristics for each ofthe media streams (discussed above with respect to the mediacharacteristic evaluator 210), the media presentation producer 212determines which media stream to use for the production media stream.For instance, the media presentation producer 212 can determine that thetwo media streams have comparable media characteristics and, as such,the media presentation producer 212 regularly switches between usingeach of the two media streams.

In another instance, the media presentation producer 212 can determinethat the first media stream has better media characteristics for a firstperiod of time and that the second media stream has better mediacharacteristics for a second period of time. As such, the mediapresentation producer 212 uses the first media stream during the firstperiod of time and switches to the second media stream for the secondperiod of time. Additionally, if the media presentation producer 212detects that the first media stream again has better mediacharacteristics at a third time period, the media presentation producer212 can switch back to using the first media stream during the thirdtime period.

Along similar lines, the media presentation producer 212 cancontinuously monitor media characteristics provided in the data streamfrom the media characteristic evaluator 210 for each media stream. Usingthe data stream, the media presentation producer 212 can select, inreal-time or near-real-time, the media stream that has superior mediacharacteristics to provide in the production media stream. Accordingly,when the media presentation producer 212 detects a change in mediacharacteristics between related media streams, the media presentationproducer 212 may dynamically determine whether the current media streamshould continue to be provided, or if the media presentation producer212 should select another media stream.

The media presentation producer 212 may consider a number of factorswhen determining whether to switch from one media stream to anothermedia stream to provide in a production media stream. In some exampleembodiments, rather than automatically selecting a media stream from agroup of related media streams to provide in a production media stream,the media presentation producer 212 may enable a user to select themedia stream to use in the production media stream. For example, themedia presentation producer 212 can provide an indication of multiplerelated media streams to a client device associated with a user. Themedia presentation producer 212 then allows the user to select a mediastream to view. Upon user selection, the media presentation producer 212can provide the selected media stream to the production media stream aswell as provide an indication to the user of the selected media stream(e.g., outlining the image of the selected media stream with aparticular color or increasing the size of the selected media streamwith respect to the size of the other media stream). Further, after theuser has selected a media stream, the media presentation producer 212continues to provide each of the media streams to the client device suchthat the user can switch to another media stream to use in theproduction media stream.

Regardless of whether a media presentation is based on a single mediastream or multiple media streams, in one or more embodiments, the mediapresentation producer 212 can identify notable moments from the mediastreams associated with a media presentation. Once the mediapresentation producer 212 identifies a notable moment from a mediastream, the media presentation producer 212 can create a media segmentthat captures the identified notable moment. To illustrate, the mediapresentation producer 212 may receive three related media streams fromthree capturing users at the same soccer game. If, during the sportingevent, a player scores a goal, the media presentation producer 212 canidentify the score as a notable event and create media segments fromeach media stream capturing the goal (e.g., create three media segments,one from each media stream). As described below, the media presentationproducer 212 can include one or more of the media segments showing thegoal in the media presentation as a replay or highlight.

The media presentation producer 212 can identify a notable moment usingvarious techniques. For example, in one or more embodiments, the mediapresentation producer 212 can monitor an event data feed (e.g., a sportsgame score feed) and detect when a notable moment occurs. For instance,the media presentation producer 212, based on the event data feed,determine a time frame in which a home run was hit. Using the determinedtime frame, the media presentation producer 212 can then identify aportion of a media stream associated with the same time frame.Additionally, or alternatively, a capturing user can mark a notablemoment while capturing content, and the media stream provided from theclient device of the capturing user can include metadata that identifiesthe notable moment.

Upon identifying a notable moment, the media presentation producer 212can create a corresponding media segment. In creating each mediasegment, the media presentation producer 212 can store the media segmentin the media presentation database 216 as well as label and/orcategorize each media segment. Later, a viewing user can request to viewa particular notable moment, and the media presentation producer 212 canidentify one or more saved media segments that correspond to a specificnotable moment in the media presentation to provide to the viewing user.

In one or more embodiments, the media presentation producer 212identifies media segments to share with a viewing user based on userpreferences and/or profile attributes of a viewing user. For example, ifthe viewing user has interest in a particular athlete, the mediapresentation producer 212 can identify media segments that feature theparticular athlete. In this manner, the media presentation producer 212can identify different media segments for different viewing usersdepending on the preferences of each viewing user requesting to access aparticular media stream.

Referring again to FIG. 2, and as mentioned above, FIG. 2 illustratesthe media presentation system 102 comprises a distribution manager 214.As an initial overview, the distribution manager 214 determines adistribution audience comprising one or more viewing users with whom toshare a media presentation. Once the distribution manager 214 determinesa distribution audience, the distribution manager 214 provides the mediapresentation to one or more client devices corresponding to each viewinguser in the distribution audience. Further, the distribution manager 214can dynamically modify or update a distribution audience based onvarious factors and characteristics related to a media stream and/ormedia presentation, as will be discussed further below.

As briefly mentioned above, the distribution manager 214 determines adistribution audience for a media presentation. In some exampleembodiments, the distribution manager 214 identifies viewing users toinclude in a distribution audience based on media characteristics of oneor more media streams within the media presentation and/orcharacteristics of the media presentation. For example, if the mediacharacteristics for the production media stream within a mediapresentation indicate a low quality media stream, the distributionmanager 214 can limit the distribution of the media presentation. Forinstance, the distribution manager 214 can limit sharing the mediapresentation to only viewing users who are closely connected to user whocaptured the media stream, or if the media presentation includes aproduction media stream selected from multiple related media stream, thedistribution manager 214 may limit sharing the media presentation toviewing users who are closely connected to any of the capturing usersassociated with the media presentation.

On the other hand, if the media characteristics for a media streamwithin the media presentation indicate an acceptable quality level, thedistribution manager 214 may increase the number of viewing users withina distribution audience. For example, the distribution manager 214 mayprovide the media stream to viewing users who are having multipledegrees of separation between a capturing user, or in some instances,the distribution manager can include viewing users in the distributionaudience that have not connection to a capturing user.

In addition to quality type media characteristics, the distributionmanager 214 can identify users to include in a distribution audiencebased on various other types of media characteristics. In one or moreembodiments, the distribution manager 214 determines a distributionaudience by identifying viewing users that meet a particular criteriacorresponding with a media presentation. For example, the distributionmanager 214 can identify viewing users that are geographically locatedwithin a defined proximity of a geographic location associated with amedia stream (e.g., viewing users at the same venue). Additionally, thedistribution manager 214 can identify a viewing user to include in adistribution audience based on a viewing user being within an definedage range, being associated with the same or similar interests as acapturing user, subscribing to a particular media presentation channelassociated with a media presentation, and/or based on user preferences.

As the media characteristics for a media stream change over time, thedistribution manager 214 dynamically change which viewing users areincluded in a distribution audience. For example, based on changes inmedia characteristics, the distribution manager 214 may increase thenumber of viewing users in a distribution audience for a particularmedia presentation. Similarly, based on changes in mediacharacteristics, the distribution manager 214 may decrease the number ofviewing users in a distribution audience for a particular mediapresentation. In the event, however, that the distribution manager 214decreases the size of a distribution audience, the distribution manager214 can always identify viewing users that are actively experiencing amedia presentation, and maintain the identified viewing users that areactively experiencing a media presentation within the distributionaudience.

In order to increase the size of a distribution audience, thedistribution manager 214 can identify additional viewing users based onvarious methods. In one or more embodiments, for example, thedistribution manager 214 can identify additional viewing users byidentifying users that are associated with each viewing user thatexperiences a media presentation. For example, upon a particular viewinguser experiencing a media presentation, the distribution manager 214 canidentify and add additional users that are connected to the particularviewing user. Thus, as more and more viewing users experience a mediapresentation, the distribution audience naturally grows. In addition toadding additional users to a distribution audience based on viewingusers experiencing content, the distribution manager 214 can also modifyage ranges, expand interest categories, or otherwise increase theopportunity for more viewing users to fall within a distributionaudience.

For instance, in some example embodiments, the distribution manager 214determines which users to include in the distribution audience based oninteractions and feedback received from users currently accessing themedia presentation. Interactions and feedback can include views, likes,comments, up or down votes, etc., of the media presentation, or mediastreams within the media presentation. To illustrate, if over half ofviewing users provided with the media presentation report “liking” themedia presentation, the distribution manager 214 may determine thatviewing users, in general, will be interested in the media presentation.As a result, the distribution manager 214 can provide the mediapresentation to additional viewing users. Thus, based on feedback fromviewing users that have access to the media presentation, thedistribution manager 214 can determine whether to increase, decrease, ormaintain the number viewing users that can access the mediapresentation.

In one or more embodiments, the distribution manager 214 predicts that aparticular media presentation will be of interest to almost every userof the media presentation system 102. Thus, the distribution manager 214may determine that the distribution audience includes essentially everyviewing user that is available to experience the particular mediapresentation (e.g., based on age/content restrictions, not every viewingusers on the system may be part of the distribution audience regardlessof the predicted level of interest). In this way, the media presentationsystem 102 can distribute highly interesting and relevant content to asmany viewing user's as possible during the streaming of a particularmedia presentation.

When providing viewing users a media presentation, the distributionmanager 214 can distribute media presentations through a variety ofdistribution channels. For example, in addition to distributing mediapresentations to users of the media presentation system 102, in someembodiments, the distribution manager 214 distributes mediapresentations to another system or application, such as a socialnetworking system, a messaging application, and/or other systems orapplications. For instance, the distribution manager 214 can distributea media presentation through a social networking system to one or moreof the social networking users connected to capturing users (e.g.,directly via the social networking system or through a plug-in thatintegrates the media presentation system 102 in the social networkingsystem). In some cases, the distribution manager 214 may post a mediapresentation on a newsfeed of one or more social networking users viathe social networking system.

As shown in FIG. 2 the media presentation system 102 includes a mediapresentation database 216. The media presentation database 216 may storemedia presentations including media streams and media segments. Themedia presentation database 216 can also store metadata associated withmedia presentations, such as the number of users that have accessed orviewed each media presentation, capturing users associated with eachmedia presentation, date information, authorization information, userpreference information, and any other information associated with mediapresentations.

In addition to the media presentation database 216, and as shown in FIG.2, the media presentation system 102 includes the user profile database218. The media profile database 216 may store user informationcorresponding to each user in the media presentation system 102. Theuser profile database 218 may include a user profile for each user ofthe media presentation system 102. A user profile may include, but isnot limited to, biographic information, demographic information,behavioral information, social information, or other types ofdescriptive information, such as work experience, educational history,hobbies or preferences, interests, affinities, and/or locationinformation. As described above, user profile information may be linkedto corresponding profile information for a user stored by a socialnetworking system.

Further, the user profile database 218 may store preference settinginformation associated with each user. For example, the mediapresentation system can allow a user to set default preferences (e.g.,via a user preference setting interface). Example user preferencesettings can relate to user-defined default sharing preferences to applyto media presentations that a user captures. In one or more embodiments,for example, a user can define default preferences to apply to mediapresentations based on one or more characteristics of viewing users,such as age, gender, interests, etc.

Returning to FIG. 2, the media presentation system 102 may communicatewith any number of client device(s) 204. For purposes of explanation,only one client device 204 will be described, but it is understood thatthe principles described can be applied to a plurality of client devicesassociated with any number of users. Further, the client device 204shown in FIG. 2 can represent a viewing client device or a capturingclient device. In other words, the client device 204 described withrespect to FIG. 2 has capabilities to capture media, provide thecaptured media in a media stream to the media presentations to a user,as well as receive and present media presentations to a user.

As illustrated in FIG. 2, the client device 204 can include, but is notlimited to, a user input detector 220, a user interface manager 222, amedia capturer 224, a media presentation manager 226, and a storagemanager 228. The storage manager 226 can include media presentations 230and user preferences 232. Each component of the client device 204 may beimplemented using a computing device including at least one processorexecuting instructions that cause the client device 204 to perform theprocesses described herein. In one or more embodiments, the variouscomponents are implemented using one or more applications installed andrunning on the client device 204. In some embodiments, the components ofthe client device 204 can be implemented by a client device alone, oracross multiple computing devices. Although a particular number ofcomponents are shown in FIG. 2, the client device 204 can include morecomponents or can combine the components into fewer components (such asa single component), as may be desirable for a particularimplementation.

As mentioned above, the client device 204 includes a user input detector220. The user input detector 220 can detect user interactions with auser interface to determine user input (e.g., detecting a touch gestureon a touch screen corresponding to an interactive element of the userinterface). More specifically, the user input detector 220 can detect,identify, and/or receive user interactions and translate userinteractions into a user input (e.g., a user command or request). Asreferred to herein, a “user interaction” means a single interaction, orcombination of interactions, received from a user by way of one or moreinput devices. In some embodiments, the user input detector 220 cantranslate a combination of user interactions as a single user inputand/or translate a single user interaction into multiple user inputs.

For example, the user input detector 220 can detect a user interactionfrom a keyboard, mouse, touch screen, or any other input device. In theevent a touch screen is used as an input device, the user input detector220 can detect one or more touch gestures (e.g., swipe gestures, tapgestures, pinch gestures, or reverse pinch gestures) that a userprovides to the touch screen. In one or more embodiments, a user canprovide one or more touch gestures in relation to and/or directed at oneor more graphical objects, items, or elements of a user interfacepresented on a touch screen. The user input detector 220 mayadditionally, or alternatively, receive data representative of a userinteraction. For example, the user input detector 220 can receive one ormore user configurable parameters from a user, one or more user commandsfrom a user, and/or any other suitable user input.

As mentioned above, client device 204 can include a user interfacemanager 222. In one or more embodiments, the user interface manager 222can utilize user input and/or other data received from a user (or sourcesimulating user input) to manage, control, and/or facilitate the use ofa user interface. In general, the user interface manager 222 canfacilitate the presentation (e.g., by way of a display screen associatedwith a client device 204) of a graphical user interface (or simply “userinterface”) for purposes of allowing a user to access the features andbenefits of the media presentation system 102. In particular, and inresponse to the user input (e.g., detected by the user interfacedetector 220), the user interface manager 222 can allow a user tocontrol a user interface to view, navigate, browse, search, edit,contribute to, share, re-share, and/or otherwise experience mediapresentations. Further, the user interface manager 222 can displaygraphical elements with which a user interacts to navigate between mediapresentations in a media presentation feed, as well as capture media toinclude in a media presentation.

From a capturing user's perspective, in some example embodiments, theinterface manager 222 may display a media currently being captured bythe client device 204 and being provided as a media stream to the mediapresentation system. For example, when a user is capturing media for amedia stream, the interface manager 222 may present the media as themedia is being captured. The interface manager 222 can further provideadditional graphical elements associated with providing a media stream,such as selecting a privacy level for the media stream, applying one ormore media enhancements to the captured media content, etc.

From a viewing user's perspective, the interface manager 222 may alsodisplay user interface elements on the display in connection with theuser capturing media for the media stream. To illustrate, the userinterface manager 222 can provide a user interface that facilitates thedisplay of one or more media presentations and/or graphical elements onthe client device 204 (e.g., on a display screen). In one or moreembodiments, the user interface manager 222 can present a user interfaceas a user navigates within a media presentation feed. Further, the userinterface manager 222 can change the display of the user interface as auser scrolls through a media presentation feed, by providing one or moreswipe gestures to a touch screen, as described above.

In one or more embodiments, the user interface manager 222 can display athumbnail or preview of a media presentation to represent to the mediapresentation. For example, the user interface manager 222 can display animage (e.g., a representative frame) from a media presentation, such asthe first image of a media stream within the media presentation torepresent the media presentation. Alternatively, the user interfacemanager 222 may update the thumbnail with a more up-to-date frame as themedia presentation proceeds so that the thumbnail better represents thecurrent media within the media stream.

In some example embodiments, a user interacts with a media presentationfeed by providing, via a touch screen displaying a user interface, oneor more swipe gestures directed toward the media presentation feed. Inresponse to a user providing the one or more swipe gestures, the userinterface manager 222 can navigate through multiple media presentationsin a media presentation feed. In alternative embodiments, the userinterface manager 222 can allow a user to navigate a media presentationfeed using other navigation techniques, such as flipping through mediapresentations (e.g., turning a graphical representation of a page witheach page corresponding to a different media presentation).

In addition to allowing a user to manually navigate or browse a mediapresentation feed, in one or more embodiments, the user interfacemanager 222 presents a media presentation to the user. In particular,the user interface manager 222 can play a media presentation, includingone or more media streams, on the display of the client device 204. Forinstance, the user interface manager 222 can present a mediapresentation in response to a user selecting (e.g., providing a taptouch gesture) with respect to a media presentation in a mediapresentation feed. As described herein, the media presentation manager226 may provide media presentations, including one or more media streamsand/or one or more media segments, for the user interface manager 222 topresent to a viewing user.

In one or more embodiments, the user interface manager 222 can cause theclient device 204 to present a search interface that allows a usersearch for specific media presentations based on a variety of user inputthat may relate to media characteristics associated with mediapresentations. In one or more embodiments, for example, a user cansearch for media presentations based on a capturing user (e.g., ausername, contact information, phone number, email address, or otheridentifier), media presentation content (e.g., users tagged in thepresentation, topic of presentation), title of a media presentation,location associated with a media presentation, and/or any otheridentifiable media characteristic of a media presentation. For example,the user interface manager 222 can provide a query input field, adisplay of suggested search terms, and/or provide a feed of mediapresentations based on resultant media presentations identified inresponse to the user's search query.

In addition to allowing a user to browse, search or otherwise navigate aplurality of media presentations within a media presentation feed, insome example embodiments, the user interface manager 222 may present anotification to a user when a media presentation is posted or updated.The interface manager 222 may present the notification as an alert,message, banner, icon, sound, etc. Further, the interface manager 222may only display a limited number of notifications as well as displaynotifications for only certain media presentations, such as for mediapresentations that the user is participating in, or from capturing userswhom the user is following, etc.

As illustrated in FIG. 2 and as mentioned above, the client device 204includes a media capturer 224. In general, the media capturer 224assists a user in capturing or otherwise obtaining media and providingthe captured media to other computing devices via a media stream. Forexample, the media capturer 224 uses one or more components of theclient device 204 to capture media and provide the captured media in amedia stream to the media presentation system 102. In particular, tocapture media, the media capturer 224 can use a camera and/or microphone(if present) on the client device 204 to capture images, videos, and/oraudio. For instance, the media capturer 224 can allow a user to capturea video with audio using the client device 204, and then provide thevideo with audio to the media presentation system 102 via a mediastream.

In some example embodiments, the media capturer 224 can provide a userthe ability to modify capture settings or preferences for capturingmedia. For instance, the media capturer 224 may allow a user to changezoom, take a still image while capturing video, mute/pause audio, applya steadiness feature, etc. Additional examples of editing includeapplying themes, coloring, adding text or graphics, etc. To illustrate,the media capturer 224 may facilitate one or more options for a user toadd text to a media segment. Additional examples of edits that a usercan apply to media as the media is being captured are described below.

After capturing media, the media capturer 224 may provide the media viaa media stream to the media presentation system 102. As described above,the media presentation system 102 can receive the media stream,determine media characteristics for the media stream, include the mediastream in a media presentation, identify a distribution audience, and/ordistribute the media presentation to viewing users in the distributionaudience. For example, the media capturer 224 can facilitate thetransmission of, or otherwise provide, the media steam to the mediapresentation system 102 using one or more communication technologies orprotocols, as described below with reference to FIG. 12. In addition, inone or more embodiments, the media capturer 224 can compress, encode,alter or otherwise modify the media prior to sending the media stream toincrease the efficiency and/or speed at which the media capturer 224provides media stream. In addition, the client device 204 may store acopy of the media stream on the client device 204, such as in the mediapresentation database 216.

In addition to the media capturer 224, FIG. 2 further illustrates thatthe client device 204 includes a media presentation manager 226. Ingeneral, the media presentation manager 226 organizes mediapresentations within the media presentation feed. Further, the mediapresentation manager 226 facilitates the presentation of one or moremedia presentations to a user in response to user input. In addition,the media presentation manager 226 assists a user in navigating within amedia presentation. For example, the media presentation manager 226 canenable a user to select between viewing multiple media streams providedin a single media presentation and/or view previous media segments froma media presentation. Additional detail regarding the media presentationmanager 226 will now be provided.

In one or more embodiments, the media presentation manager 226 organizesmedia presentations within a media presentation feed based oninformation received from the media presentation system 102. Forexample, the media presentation manager 226 may arrange mediapresentations in the media presentation feed according to the timestamp(e.g., date created, time of last modified, etc.) of each mediapresentation, such as in a presentation list. To illustrate, when a newmedia presentation is shared with a user, the media presentation manager226 may arrange the media presentation feed to display the mediapresentation before older media presentations. Alternatively, the mediapresentation manager 226 may arrange or rank the media presentation feedbased on other criteria, such as media presentation title, category, ageof the media presentation, presentation length, contributors (e.g.,capturing users), user indication as a favorite, etc. In some exampleembodiments, the media presentation manager 226 can enable a user todefine, through user preferences, how the media presentation manager 226organizes, arranges, and/or ranks the media presentation feed.

While the media presentation manager 226 generally provides a singlemedia presentation feed, in alternate embodiments, the mediapresentation manager 226 may provide numerous media presentation feedson the client device 204. For example, the media presentation manager226 may present a media presentation feed shared among friends andanother media presentation feed shared among family members.Additionally, the media presentation manager 226 may provide numerousmedia presentation feeds that are arranged by category, theme, topic,creator, contributors, date created, etc. In one or more embodiments,the media presentation manager 226 can provide multiple mediapresentation feeds that each represent a media presentation channel towhich the user elects to subscribe.

In at least some examples, the media presentation manager 226 presentsone media presentation to a user (e.g., plays) at a time. For example,the media presentation manager 226 may fully display one mediapresentation to the user at a time, and thus plays the fully displayedmedia presentation. In some example embodiments, however, the mediapresentation manager 226 may display more than one media presentation toa user. In these embodiments, the media presentation manager 226 maydetermine which media presentation(s) to play or allow the user toindicate which media presentation(s) to play.

For example, based on a user selecting a media presentation from themedia presentation feed, the media presentation manager 226 may providethe media presentation to the user. More specifically, the mediapresentation manager 226 may present the media from a media stream, suchas a production media stream, to the user. In many cases, the productionmedia stream will be a live media stream providing live content. Asnoted above, a media stream generally refers to a live media stream, asemi-live media stream, or a near-live media stream, the latter twobeing examples of media streams that are slightly delayed due toprocessing, transmitting, and production reasons. For example, anear-live or semi-live media stream may be delayed from two to tenseconds, or more, from when the live action actually occurs.

In providing a media presentation to a user, the media presentationmanager 226 may provide navigational tools to the user. For example, themedia presentation manager 226 provides selectable options for a user toaccess and view a notable moment from the media presentation. When auser selects an option to access and view a notable moment, the clientdevice 204 may send a request to the media presentation system 102 toprovide one or more media segments to the user corresponding to theselected notable moment. In response, the media presentation system 102can provide the client device 204 with the one or more media segments aspart of the media presentation (e.g., as part of a media stream or as aseparate file) and the client device 204 can provide the media segmentsto the user.

In addition to requesting and receiving media segments corresponding tonotable moments, when a user selects a media presentation, the mediapresentation manager 226 can provide a user with a selectable option toview one or more media streams from the media presentation, ifavailable. To illustrate, the media presentation manager 226 may beproviding a production media stream to a user as part of a mediapresentation, where the production media stream switches between two ormore media streams provided from two or more capturing user clientdevices. Rather than viewing the production media stream, the user mayprefer to view a particular media stream. As such, the mediapresentation manager 226 can provide one or more selectable options to auser to allow the user to view a single media stream instead of theproduction media stream. Further, when the user is viewing the singlemedia stream, the media presentation manager 226 can provide an optionto allow the user to return to viewing the production media stream.

In some cases, upon the user selecting the option to view other mediastreams as part of the media presentation, the media presentationmanager 226 may need to communicate with the media presentation system102 to access the other media streams. For example, upon the userselecting the option to access another media stream, the mediapresentation manager 226 may request other media streams, or portionsthereof, to provide to the user. In some embodiments, the amount (e.g.,length) and/or resolution of each media stream that the mediapresentation system 102 provides, upon the initial request and/or uponbeing notified of the user selection, to the client device 204 dependson available bandwidth. Alternatively, in some embodiments, when a userselects a media presentation, the media presentation system 102 mayprovide full-resolution media streams of multiple media streamcorresponding to the media presentation to the client device 204.

In addition to allowing a user to select or navigate between mediastreams within a media presentation, in one or more embodiments, themedia presentation manager 226 may facilitate playing, pausing,skipping, and/or repeating portions of a selected media presentation inresponse to user input. Specifically, in response to the mediapresentation manager 226 detecting a touch gesture, the mediapresentation manager 226 can provide navigational features based on thedetected touch gesture. For example, if a user provides a right-to-leftswipe gesture, the media presentation manager 226 can repeat thepreviously played media segment. As another example, if a user iswatching a media segment of notable moment and provides a tap gesture,the media presentation manager 226 can skip the remaining portion of theplaying media segment and provide the next notable moment, or return toproviding a media stream.

In additional example embodiments, in response to a user providing adouble tap gesture, the media presentation manager 226 can pause themedia presentation. In yet another example, if a user provides aleft-to-right swipe gesture, the media presentation manager 226 canprovide an information page regarding the current media stream or mediapresentation. The above example gestures are provided as examples only,and one or more embodiments can include the same or additional gesturesassociated with the same or other functionality, as described herein.

As mentioned above with respect to the user interface manager 222, themedia presentation system 102 provides search functionality that allowsa user to search or discover media presentations not currently sharedwith the user. For example, the media presentation manager 226 mayenable a user to discover popular, trending, or featured mediapresentations that users of the media presentation system 102 have madepublic. For instance, the media presentation manager 226 may enable a“discover tab” that a user may select to view one or more popular,trending, or featured media presentations. In another instance, themedia presentation manager 226 may provide channels that allow users todiscover different categories of media presentations, such as comedy,sports, news, the arts, music, culture, etc. Further, the mediapresentation manager 226 may allow a user to discover other mediapresentations by creator demographics (age, residency, nationality,topic, channel, category, creation date, modification date, popularity(e.g., number of viewers), trends (e.g., within the last hour, 12 hours,24-hours, or another specified amount of time), location, interests,etc.

In addition to allowing users to search and discover other publiclyavailable media presentations, in some example embodiments, the mediapresentation manager 226 may enable a user to discover mediapresentations of other users of the media presentation system 102 thatare in a specified proximity of the user. For example, if the user is atan event, the media presentation manager 226 may allow the user todiscover media presentations from other users at the event. Further, themedia presentation manager 226 may enable a user to discover other userswho are at, or who are contributing media streams to a mediapresentation at a particular location, such as a park, a school, a pointof interest, a parade, a rally, etc. Additional details relating toproviding media presentations to a viewing user will be described withreference to FIGS. 3A-10 below.

FIG. 2 also illustrates a storage manager 228. The storage manager 228may include media presentations 230 and user preferences 232. Forexample, the storage manager 228 stores captured media as well as mediapresentations provided to the client device 204, including portions ofmedia streams and media segments. The storage manager 228 maycommunicate with the media presentation system 102 to receive mediapresentations from the media presentation system 102. For instance, thestorage manager 228 receives one or more media streams from the mediapresentation database 216. Similarly, the storage manager 228 may senduser preferences to the user profile database 218 on the mediapresentation system 102.

FIGS. 3A-3B illustrate a sequence-flow diagram showing interactionsbetween one or more server(s) 101 that include the media presentationsystem 102 and multiple client devices, such as one or more capturingclient devices 105, or one or more viewing client devices 104. (e.g.,one or more contact client devices 305, and one or more additionalviewing client devices 315). The capturing client device 105, the one ormore contact client devices 305, and the one or more additional viewingclient devices 315 may be example embodiments of the client device(s)204 described with respect to FIG. 2. Further, the media presentationsystem 102 may correspond to the media presentation system describedherein.

FIGS. 3A-3B represent one example of automatically determining adistribution audience for a particular media presentation correspondingto a particular media stream. In particular, and as discussed above, themedia presentation system 102 can analyze a media stream and identifyone or more viewing users to include in a distribution audience. Inaddition, based on updated information (e.g., media characteristics)related to the media stream, the media presentation system 102 canmodify the distribution audience to include additional viewing users.

In one or more embodiments, and as shown in step 302 of FIG. 3A, thecapturing client device 105 begins to capture media of an event. Forexample, a capturing user associated with the capturing client device105 captures a live video of a concert that he or she is attending usinga video camera and microphone of the capturing client device 105. In oneembodiment, the client device access/controls the video camera andmicrophone functionality using an application associated with the mediapresentation system such that the capturing user can easy decide toshare the media being captured. Alternatively, and as explained above,the client device can access/control the video camera and microphonefunctionality using an application associated with a social network, asexplained above.

After capturing media, the capturing client device 105 may send themedia in a media stream to the media presentation system 102 hosted onthe one or more server(s) 101, as FIG. 3A illustrates in step 304. Morespecifically, the capturing client device 105 may stream the capturedmedia of the event to the media presentation system 102 in real-time ornear-real-time. In some example embodiments, the capturing client device105 may provide the media presentation system 102 with contextsurrounding the media stream, such as including user providedinformation (e.g., a title for the media stream, tagging or labeling themedia stream, etc.). In additional, or alternative embodiments, themedia presentation system 102 may automatically determine context fromthe media stream, as described below.

As shown in step 306 of FIG. 3A, after receiving the media stream, themedia presentation system 102 determines characteristics of the mediastream. In particular, the media presentation system 102 can analyze themedia stream to identify media characteristics, such as videocharacteristics, audio characteristics, and other characteristics of themedia stream. For example, as described above, the media presentationsystem 102 can identify the video resolution, definition type, aspectratio, frames per second, refresh rate, color palette, brightness, vocallevels, noise levels, audio range, location, cardinal direction, signalstrength, etc. In particular, the media presentation system 102 candetermine characteristics based on the video quality (e.g., videosteadiness/shakiness, video angle and perspective, and framing) and theaudio quality (e.g., music clarity and amount of backgroundnoise/interference).

In some example embodiments, the media presentation system 102determines characteristics based on content identified within the mediastream. For instance, the media presentation system 102 may recognizethe face and/or the voice people, places, locations, or objects includedin the media stream. For example, the media presentation system 102 canrecognize a face of the capturing user's friend, and in response,generate a media characteristic corresponding to the capturing user'sfriend to associate with the media stream. Accordingly, the mediapresentation system 102 can use the media characteristic correspondingto the user's friend to identify viewing users to include in adistribution audience (e.g., the capturing user's friend, friends of thecapturing user's friend, etc.). In the same way, when the mediapresentation system 102 recognizes a place, location, landmark orobject, the media presentation system can generate and associate a mediacharacteristic with the media stream, which can then be used todetermine a distribution audience.

In addition to simply recognizing users of the media presentationsystem, in one or more embodiments the media presentation system 102recognizes an influencer. In particular, an influencer can be aninfluential individual, such as a celebrity. Based on recognizing aninfluencer within a media stream, the media presentation system 102 maymodify one or more characteristics (or generate one or morecharacteristics) to indicate that the media stream includes theinfluencer. For example, in the even the influencer is a member of amusic group. The media presentation system can generate mediacharacteristics that identify the identity of the influencer, the nameof the music group, and the genre of music performed by the music group.Based on these media characteristics, the media presentation system 102can identify users that are interested in the media stream to include inthe distribution audience.

Similarly, the media presentation system 102 may include a sponsoredmedia stream within a media stream presentation associated with anevent. For example, a corporation may sponsor a “back stage” or “dugout” media stream that is provided to qualifying viewing users (e.g.,viewing users who pay a premium, watch an advertisement, like or share aproduct, etc.). For instance, a user can preview the sponsored mediastreams, and if a viewing user wants to view more of the sponsored mediastream, the viewing user can request access via the media presentation.Alternatively, the sponsored media stream may be presented in connectionwith a brand, such as the “SPRITE front row media stream.” The mediapresentation system 102 can mix the sponsored media stream into themedia presentation associated with the event, as described above.

After determining one or more media characteristics, step 308 in FIG. 3Ashows that the media presentation system 102 determines which contact(s)(e.g., viewing users) to send the media stream to based on the mediacharacteristics. In one or more embodiments, the media presentationsystem 102 will provide access to the media presentation to one or morecontacts (e.g., friends) of the capturing user. In some cases, the mediapresentation system 102 may send the media presentation to additionalviewing users of the media presentation system 102. As discussed above,the media presentation system 102 may determine which users to send themedia presentation based on the one or more characteristics.

To illustrate, in one or more embodiments, the media presentation system102 determines whether the quality of the media stream is above aminimum quality level. When the media presentation system 102 determinesthat the quality of the media stream, based on the mediacharacteristics, is above the minimum quality level, the mediapresentation system 102 can identify one or more contacts to receive themedia presentation as part of a distribution audience. Alternatively, ifthe media presentation system 102 determines that the media stream failsto satisfy minimum quality levels, the media presentation system 102 candetermine not to distribute the media stream to other users. Forinstance, the media presentation system 102 determines that the signalstrength from the capturing client device 105 is too weak to sustain amedia stream or that the video is too shaky to be sent out to otherusers.

In some example embodiments, if the quality of the media stream is aboveminimum quality levels, the media presentation system 102 can stilldetermine which users to send the media stream to based on mediacharacteristics of the media stream. For example, the media presentationsystem 102 may weigh media characteristics such as video quality, audioquality, location, tags and labels, etc., when identifying contacts toinclude in the distribution audience. For instance, if the media streamis of a Beyoncé concert, the media presentation system 102 may identifyone or more contacts of the capturing user that have an interest inBeyoncé, or R&B, pop, or soul music, despite other characteristics ofthe media stream being poor. In another instance, if the video and audioquality of the media stream is above average, the media presentationsystem 102 may determine to send the media stream to all contacts of thecapturing user.

After identifying viewing users to include in a distribution audience,the media presentation system 102 sends the media stream within a mediapresentation to contact client devices 305 associated with the viewingusers that are included in the distribution audience, as shown in step310 in FIG. 3A. In some example embodiments, the media presentationsystem 102 can first send a notification or a portion of the mediastream before providing the media stream to the contact client device305. For instance, a contact client device receives a notification thatthe capturing user is streaming video from a Beyoncé concert. Upon thecontact associated with the contact client device selecting thenotification corresponding to the Beyoncé concert, the mediapresentation system 102 may send the media presentation having the mediastream of the Beyoncé concert to the contact client device 305.

As mentioned above, the contact client devices 305 can present the mediastream within the media presentation to the corresponding contacts, asshown in step 312 of FIG. 3A. In addition, and as illustrated in step314, the contacts (e.g., a first group of viewing users) can interactwith the media presentation and provide explicit feedback, such asliking, sharing, and/or commenting on the media stream. For example,step 314 illustrates the contact client devices 304 can receive thefeedback from the viewing users. The corresponding contact client device305 can also capture implicit feedback from a contact interacting with amedia presentation. For example, when a contact accesses a mediapresentation, the contact client device 305 can capture viewinginformation (view count, duration watched, replayed segments,navigational inputs, etc.). Moreover, and as further illustrated in step316 of FIG. 3A, the contact client devices 305 may send the capturedfeedback to the media presentation system 102.

In some example embodiments, the explicit feedback can includecommunications sent by viewing users independent of the mediapresentation system 102. For example, the media presentation system 102may detect that a viewing user posts a social media message linking tothe media stream or content within the media stream. For instance, aviewing user may publically post a short message indicating the viewinguser's appreciation for content included in the media stream, and themedia presentation system 102 can detect the post, extract feedback fromthe post, and translate the feedback in to one or more characteristicsand/or media characteristics associated with the media stream.

Referring now to FIG. 3B, the media presentation system 102 may receivethe feedback from the one or more contact client devices 305 and processthe feedback. In particular, the media presentation system 102 mayincorporate the feedback and modify and/or generate mediacharacteristics of the media stream. In other words, the mediapresentation system 102 may supplement the media characteristicsdetermined for the media stream with the feedback information. As shownin step 318 of FIG. 3B, the media presentation system 102 updates themedia characteristics of the media stream after receiving the feedbackfrom the contact client devices 305. As the media presentation system102 receives additional feedback, the media presentation system 102 cancontinue to update the characteristics of the media stream.

The updated media characteristics associated with a media stream canprovide additional information that indicates additional viewing usersmay be interested in the media stream and/or media presentation.Accordingly, and as shown in step 320 of FIG. 3B, the media presentationsystem 102 can identify additional viewing users to which to send themedia stream based on the updated characteristics (e.g., the mediapresentation system can modify the users of a distribution audience).For example, when a proportionally high number of contacts of theoriginal distribution audience share or like the media presentation themedia presentation system 102 may determine a larger number ofadditional viewing users to include in a distribution audience. On theother hand, if very few contacts of the original distribution audiencewatch the media stream for less then a threshold period of time (e.g.,ten seconds), the media presentation system 102 may determine not tosend the media presentation to any additional viewing users.

In some example embodiments, the media presentation system 102 maydetermine additional viewing users to whom to send the media streambased on attribute information of potential viewing users. For example,the media presentation system 102 can identify viewing users based on auser's interest, such as viewing users who like Beyoncé. As anotherexample, the media presentation system 102 sends the media presentationto viewing users of a particular age group, demographic, education, orlifestyle. As a further example, the media presentation system 102 sendsthe media presentation to viewing users within a defined geographicboundary (e.g., users at the same concert or venue, within the same cityor state, or within a defined distance from the capturing client device,etc.). Further, the media presentation system 102 can identify a newsoutlet, a sponsor, and/or media stream channels as additional users towhom to send the media presentation. For example, once the media streamreaches a critical mass, the media presentation system 102 may add themedia stream to a public listing sorted by popular or trending mediastreams. As such, viewing users can discover the media stream.

Once the media presentation system 102 determines additional viewingusers to include in a distribution audience, the media presentationsystem 102 may send, or otherwise provide access to, the media stream tothe additional viewing users. In particular, as step 322 of FIG. 3Billustrates, the media presentation system 102 sends the media streamwithin the media presentation to one or more additional viewing clientdevices 315 associated with the identified viewing users. In someexample embodiments, sending the media presentation involves providing aviewing user access to the media presentation via the additional viewingclient devices 315 (e.g., the media presentation appears within themedia presentation feed of an additional viewing user).

Upon receiving the media presentation, the one or more additionalviewing client devices 315 can present the media stream within the mediapresentation to the one or more additional viewing users, as shown instep 324 of FIG. 3B. Similar to the description above, the one or moreadditional viewing client devices 315 associated with the identifiedviewing users can receive, capture, and send implicit and explicitfeedback as the additional viewing users interact with the mediapresentation and media stream. Thus, as shown in step 326, the one ormore additional viewing client devices 315 receive feedback from the oneor more additional viewing users, and as shown in step 328, the one ormore additional viewing client devices 315 can send the feedback to themedia presentation system 102. Upon receiving the feedback, the mediapresentation system 102 can repeat steps 318 through 328 (as indicatedby the dashed arrow in FIG. 3B) to update media characteristics for themedia stream, modify the distribution audience, provide viewing users inthe updated distribution audience access to the media stream, receivefeedback from users of the updated distribution audience, and receivethe feedback.

In other words, as viewing users provide feedback, the mediapresentation system 102 can repeat steps 318-322 by continuouslyre-evaluating which additional viewing users to send the media stream tobased on up-to-date feedback and adjusting which viewing users haveaccess to the media stream based on the determination. To illustrate, asthe media presentation system 102 determines that a media stream isgaining popularity, the media presentation system 102 may graduallyincrease the number of additional viewing to add to a distributionaudience. Each time the media stream reaches a new critical-mass level,the media presentation system 102 can identify and send the media streamto additional viewing users. On the other hand, if the popularity of themedia stream begins to decline, the media presentation system 102 candecrease the number of additional viewing users. Further, as describedabove, the media presentation system 102 may also factor in mediacharacteristics, such as audio and video quality when determining thenumber of additional viewing users to include or exclude in thedistribution audience.

Further, in some embodiments, the media presentation system 102 canpredict when a media stream will reach the next critical-mass level. Forexample, the media presentation system 102 can consider the popularityof a media stream in connection with other factors, such as locations,events, trendiness, social buzz, etc. As a result, even though a mediastream does not yet have a large following, the media presentationsystem 102 can anticipate the growth on the media stream and use theanticipated information in determining which additional viewing users toinclude in the distribution audience.

FIGS. 4A-4C illustrate a sequence-flow diagram showing interactionsbetween one or more server(s) 101 that include a media presentationsystem 102 and multiple client devices, such as the viewing clientdevice 104 and capturing client devices 405. As an overview, FIG. 4Aillustrates the media presentation system 102 receiving multiple relatedmedia streams from the capturing client devices 405, creating aproduction media stream from the related media streams, and presentingthe production media stream to a viewing client device 104 as part of amedia presentation. FIG. 4B continues the sequence-flow diagram fromFIG. 4A and illustrates the viewing client device 104 communicating withthe media presentation system 102 to request additional and/oralternative media streams from the media presentation. FIG. 4C alsocontinues the sequence-flow diagram from FIG. 4A and illustrates theviewing client device 104 communicating with the media presentation toskimming media segments corresponding to notable moments of the mediapresentation on the viewing client device 104.

As shown in step 402 of FIG. 4A, multiple capturing users correspondingto the multiple capturing client devices 405 begin capturing media at anevent. For instance, multiple capturing users at the same event (e.g., arally, a concert, a contest, a speech, an awards ceremony, a protest, afundraiser, etc.) can each capture media. Each capturing client device405 can send a media stream including the captured media to the mediapresentation system 102. More specifically, the capturing client devices405 associated with each capturing user sends the multiple media streamsto the media presentation system 102, as shown in step 404 of FIG. 4A.In one or more embodiments, the capturing client devices 405 are simplycapturing related media at an event at the same time. In other words,there is no requirement that the capturing client devices 405 begincapturing media or sending a media stream at the same time (e.g., themedia presentation system will determine the multiple media streams arerelated upon receiving and comparing media characteristics of each ofthe multiple media streams, as will be discussed further below).

As further illustrated in step 406 of FIG. 4A, the media presentationsystem 102 determines that the multiple media streams are related.Generally, the media presentation system 102 receives a plurality ofmedia streams from the capturing client devices 405 from across themedia presentation system. As is often the case, the capturing clientdevices 405 providing the multiple related media streams are not workingin tandem with each other, rather capturing users are individuallycapturing and sharing media stream with other viewing users, and themedia presentation system 102 detects that capturing users are sharingindividual media streams. Accordingly, the media presentation system 102determines whether a relation exists between the shared media streams.

In particular, when the media presentation system 102 receives the mediastreams from the capturing user client devices 405, the mediapresentation system 102 can compare the media streams to each other toidentify whether any of the media streams are related. For example, themedia presentation system 102 can compare the timestamps, geographicinformation (e.g., the capturing users are within a defined geo-fencedarea), labels, tags, identified features (e.g., using imagerecognition), etc., to determine whether the media streams are relatedto each other. For instance, the media presentation system 102 maydetermine that the multiple media streams are related to each otherbecause each of the media streams originate at the same event and havematching audio.

In some embodiments, the media presentation system 102 uses externalinformation to determine whether multiple media streams are related. Forexample, the media presentation system 102 communicates with a socialnetworking system or another system to collect information about anevent and/or users at the event, and uses this information to determineif two media streams are related. For instance, a social networkingsystem may indicate to the media presentation system 102 where and whenan event is occurring, the name of the event, participants who will beor are at the event, including the capturing users providing the mediastreams. In addition, the media presentation system 102 may obtain eventand user information based on the status of one or more capturing userson a social networking system or other status-broadcasting system (e.g.,FACEBOOK, INSTAGRAM, etc.).

In step 408, the media presentation system 102 analyzes the relatedmedia streams for media characteristics. In particular, the mediapresentation system 102 analyzes each related media stream to identifymedia characteristics, such as video characteristics, audiocharacteristics, and other characteristics as described in detail above.In some cases, the media presentation system 102 delays analyzing therelated media streams until after a number of related media streams areidentified. For example, only after the media presentation system 102identifies three, four, or five media streams that are related to eachother does the media presentation system 102 analyze the related mediastreams. In other words, the media presentation system 102 may wait fora minimum number of capturing users to actively capture the same subjectmatter before the media presentation system 102 determines that theindividual capturing users share a collective purpose.

As described above, the media presentation system 102 identifies videoquality and audio quality media characteristics for each received mediastream. In some cases, the media presentation system 102 can rank orprioritize each media stream based on video quality, audio qualityand/or a combination of media characteristics. Further, the mediapresentation system 102 can use the media characteristics to identifywhich media stream to provide in a production media stream. For example,as shown in step 410, the media presentation system 102 selects a firstmedia stream based on evaluating the media characteristics correspondingto each media stream. For instance, the media presentation system 102selects the first media stream because the first media stream provides aclose-up camera angle and a clear audio feed of the comedy show.

In step 412, shown in FIG. 4A, the media presentation system 102provides the first media stream to the viewing client device 104. Themedia presentation system 102 can provide the selected first mediastream as part of a production media stream within a media presentation.For example, the media presentation system 102 can send a mediapresentation to the viewing client device 104 that includes theproduction media stream showcasing the selected first mediapresentation. In response, the viewing client device 104 can present thefirst media stream to a viewing user as part of the production mediastream.

After providing the first media stream to the viewing client device 104,the media presentation system 102 can continue to receive the relatedmedia streams from the multiple capturing client devices 405. Further,additional capturing users may begin to provide additional media streamsof the comedy show and the media presentation system 102 may detect theadditional media streams. Similarly, the media presentation system 102may detect that capturing users that previously provided media streamsto the media presentation system 102 have dropped off and are no longersending media streams to the media presentation system 102.

Step 414 of FIG. 4A illustrates the media presentation system 102detecting a change in media characteristics for the related mediastreams. For instance, the media characteristics associated with themedia streams will likely change over time. For example, a media streammay become shaky, diminish in signal strength, degrade in audio quality,etc. Conversely, the video quality and audio clarity of a media streammay improve over time. As such, the media presentation system 102 candetect changes in the video and/or audio quality of the related mediastreams based on the updated media characteristics for each of therelated media streams. As another example, the media presentation system102 may discover that the ranking or priority for the media streams haschanged upon detecting the updated media characteristics.

In some example embodiments, the media presentation system 102 monitorsthe time a media stream is being provided to a viewing user. Forexample, once the media presentation system 102 selects a media streamto provide to the viewing user, the media presentation system 102 maytrack the duration of time that the media stream is provided to theviewing client device 104. Accordingly, and as mentioned above, viewingusers prefer a content experience that is not tedious. To keep a contentexperience exciting and stimulating, commercially productions, such asprofessionally produced movies and television shows, frequent switchbetween camera angles and perspectives. As a result, viewing users havecome to appreciate content that switches between different angles andperspectives. Moreover, longer cuts from a single media stream convey anunprofessional and unpolished feel to viewing users as well as allowviewing users to identify imperfections in the quality of the mediastream. For example, a viewing user may not notice that a quick cut froma media stream is shaky or has poor lighting, but if the media stream isprovided to the viewing user for an extended period of time, theimperfections of the media stream may become accentuated to the viewinguser. In light of the foregoing, in some instances, the mediapresentation system 102 may automatically switch from providing onemedia stream to the viewing user to providing another related mediastream to the viewing user according to a predetermined schedule (e.g.,2-4 seconds, 12 seconds, 30 seconds, etc.).

In some example embodiments, the media presentation system 102 may usethe media characteristic that indicates the length of elapsed time amedia stream has been provided to a viewing user as a factor indetermining when to provide another related media stream to the viewinguser. For example, the media presentation system 102 can reduce theweight given to one or more other media characteristics of a selectedmedia stream the longer the selected media stream is provided. Then, atsome point, regardless of how superior the one or more other mediacharacteristics are of the selected media stream in comparison to theother related media streams, the media presentation system 102 willdetermine to select another media stream. In this manner, the mediapresentation system 102 can ensure that a viewing user will be providedwith different cuts between different related media streams. Further,the media presentation system 102 may provide media streams that havebetter media characteristics for longer durations of time than mediastreams that have poorer media characteristics, but the mediapresentation system 102 may still switch between the different mediastreams to provide variety to a viewing user.

In one or more embodiments, the media presentation system 102 may followa production template when determining the length of time to provide aselected media stream to the viewing user before cutting to anothermedia stream from the related media streams. In general, a productiontemplate includes default production attributes that help determine thelook and feel of a production media stream. For example, if the mediapresentation system 102 is using a movie trailer type productiontemplate, the media presentation system 102 may generally cut betweenmedia streams every few seconds. If the media presentation system 102 isusing a sports production template, the media presentation system 102may use longer continuous shots from the same media stream followed byreplays from the selected media stream as well as other related mediastreams. As discussed below, the media presentation system 102 canemploy a number of production templates in determining the optimal timethe media presentation system 102 should provide a selected media streamto viewing users.

Further, in many cases, the production template that the mediapresentation system 102 selects may be based on the content and subjectmatter to which the related media streams correspond. As an example, ifthe media presentation system 102 detects that the related media streamscorrespond to a sports game, the media presentation system 102 may use asports production template, or a particular sporting-type template(e.g., a template designed for a football game, a tennis match, baseballgame, a basketball game, etc.). As another example, upon determiningthat multiple media streams relate to a concert, the media presentationsystem 102 may select a concert production template that specifiesproviding longer cuts from media streams that include close-up shots ofperformers at the concert or that specifies switching between mediastreams based on the current status of the performance (e.g., whether aperformer is performing a solo).

Returning to FIG. 4A, in step 416, the media presentation system 102updates the selection to select a second media stream to provide to theviewing user based on the updated media characteristics. In particular,when the media presentation system detects a change in the mediacharacteristics of the related media streams, the media presentationsystem 102 may determine that the media characteristics of the secondmedia stream outperform the first media stream. As a result, the mediapresentation system 102 switches to the second media stream. As anotherpossibility, while the media characteristics of the first media streammay continue to have equal or better media characteristics than thesecond media stream, the media presentation system 102 may decide, basedon the elapsed time that the media presentation system 102 has providedthe first media stream to the viewing user, to change selections to thesecond media stream, as described above.

Upon switching selections to the second media stream, the mediapresentation system 102 may provide the second media stream to theviewing user. In particular, step 418 illustrates the media presentationsystem 102 providing the second media stream to the viewing clientdevice 104. For example, upon selecting the second media stream, themedia presentation system 102 switches from providing the first mediastream in a production media stream to providing the second media streamin the production media stream.

Upon the media presentation system 102 sending the second media streamto the viewing client device 104, the viewing client device can presentthe selected second media stream to the viewing user. For instance, ifthe viewing client device 104 is presenting a production media stream tothe viewing user, the production media stream may automatically switchfrom the first media stream to the second media stream on the viewingclient device 104. In other words, from the perspective of the viewingclient device 104, the viewing client device 104 continues to providethe production media stream to the viewing user even though the mediapresentation system 102 switches from providing the first media streamto providing the second media stream in the production media stream.

Referring now to FIG. 4B, in some example embodiments, the viewing usermay desire to view one or more additional media streams associated witha media presentation. For example, if the viewing user is watching theproduction media stream, the viewing user may request to view one ormore additional media streams. For instance, the viewing user may selecta graphical user interface option to access addition angles and/orperspectives. Accordingly, as illustrated in step 420 of FIG. 4B, theviewing client device 104 receives the request to view additional mediastreams for the event. As shown in step 422 of FIG. 4B, the viewingclient device 104 sends the request for the additional media streams tothe media presentation system 102. In an alternative embodiment, theviewing client device 104 may already be accessing one or moreadditional media streams of the event. For example, the mediapresentation system 102 may be sending each media stream relating to theevent as part of the media presentation, including the production mediastream. As such upon receiving the request, the viewing client device104 may present the additional media streams to the viewing user, asshown in step 428.

In the event the media presentation system 102 receives a request fromthe viewing client device 104 to provide additional media streams to themedia presentation system 102, the media presentation system 102 canprovide one or more related media streams to the viewing client device104. In particular, as step 424 of FIG. 4B shows, the media presentationsystem 102 selects additional media streams based on the mediacharacteristics of each media stream 424. In some instances, the mediapresentation system 102 may select a predetermined number of additionalmedia streams to provide to the viewing client device 104. For example,the media presentation system 102 may only select media streams thatmeet threshold quality standards, before or after the media presentationsystem 102 applies production edits, as described above. As such, themedia presentation system 102 may evaluate the media characteristics ofeach additional media stream to determine the quality of the mediastream and whether to send to the media stream based in the qualitylevel of the media stream, as described above.

In some example embodiments, the media presentation system 102 mayidentify that the viewing client device 104 has limited displaycapabilities. For instance, the media presentation system 102 mayidentify that a viewing client device cannot comfortably display morethan four media streams at the same time. Accordingly, the mediapresentation system 102 may limit the number of provided media streamsto four or less. Alternatively, the media presentation system 102 maydisregard the capabilities of a viewing client device and may allow theviewing client device to determine how to handle displaying multiplemedia streams that the media presentation system 102 provides to theviewing client device.

As shown in FIG. 4B, in step 426 the media presentation system 102provides the additional media streams to the viewing client device 104.In some cases, the media presentation may provide reduced versions ofthe additional media streams or select portions from the additionalmedia streams. For example, if bandwidth is limited, the mediapresentation system 102 may provide a lower-quality resolution of theadditional media streams. Additionally, or alternatively, the mediapresentation system 102 may withhold audio for one or more of the mediastreams when providing the additional media streams.

The viewing client device 104, as illustrated in step 428, can presentthe additional media streams to the viewing user. For example, theviewing client device 104 can display one or more additional mediastreams to the viewing user at the one time, such as in a grid layout.Alternatively, the viewing client device 104 may display a one of theadditional media streams at one time and allow the viewing user toscroll or cycle through the additional media streams.

In one or more embodiments, the viewing client device 104 may vary thesize of the additional media streams when presenting the additionalmedia streams to the viewing user. For example, the viewing clientdevice 104 may display one or more of the additional media streams overa portion of the presently presented media stream, such as the secondmedia stream or the production media stream (e.g., picture-in-picture).As another example, the viewing client device 104 may reduce the size ofthe second media stream and display one or more of the additional mediastreams adjacent to the second media stream, such as in a symmetricalgrid layout. One will appreciate that the viewing client device 104 canpresent the additional media streams to a viewing user using a varietyof methods and layouts.

The viewing client device 104 can allow the viewing user to select oneor more of the additional media streams. Thus, as step 430 of FIG. 4Billustrates, the viewing client device 104 receives a selection of oneor more additional media streams. In response, the viewing client device104 presents the selected media stream to the viewing user, as shown instep 432. The viewing client device 104 can replace the second mediastream with the selected media stream. Alternatively, the viewing clientdevice 104 may present the selected media stream in addition to thesecond media stream, such as side-by-side or one overlying the other.

In some example embodiments, the viewing client device 104 may request ahigher resolution of the selected media stream from the mediapresentation system 102. For example, if the media presentation system102 sent a lower-resolution, or truncated portion, of the additionalmedia stream that the viewing user selected, the viewing client device104 may request the media presentation system 102 send a higherresolution of the selected media stream for the viewing client device104 to present to the viewing user.

Further, in one or more embodiments, the viewing user may allow theviewing user to separately select video and audio from different mediastreams. For example, the viewing user may switch between various cameraangles corresponding to the related media streams, but may remain on thesame audio channel provided from the media stream with the clearestaudio track. Further, in some cases, the viewing user may mix audio fromdifferent media streams together so that the viewing user can hear audiocorresponding to multiple media streams. In another case, the viewinguser may be content with watching the production media stream, but maydesire to change between different audio streams, such as switching to aSpanish or French audio stream rather than an English audio stream.

As described above, FIG. 4C provides an alternate embodiment where aviewing user skims the media presentation for previous notable moments.In particular, the steps 440-452 in FIG. 4C can occur after step 418 ofFIG. 4A, where the media presentation system 102 provides the secondmedia stream to the viewing client device 104. In other words, the stepsin an embodiment described with respect to FIG. 4C can occur after aviewing user is presented with a media presentation corresponding to anevent. In particular, and as shown in step 440 of FIG. 4C, the mediapresentation system 102 identifies notable moments from the relatedmedia streams. As described below in additional detail, the mediapresentation system 102 can identify notable moments from the multiplerelated media streams corresponding to the event. Further, as describedbelow, the media presentation system 102 can identify notable momentsbased on user profile attributes of the viewing user as well as based onsocial data from other viewing users.

In general, notable moments can include portions of a media steam thatare of interest to a viewing user. Examples of notable moments includenoteworthy parts, highlights, or significant portions of an event. Forinstance, a notable moment can be a sports play, an announcement of acontest winner (e.g., a reality show winner, an award winner, a lotterywinner), a song performance by an artist, a speech by a politician, animage of a person or object, etc.

The media presentation system 102 can identify notable moments from eachof the related media streams. In many cases, the related media streamsprovide the same content and/or subject matter, but at different angles.As such, the media presentation system 102 can identify that a notablemoment is captured from multiple perspectives. In other cases, the mediapresentation system 102 may identify a notable moment in the relatedmedia streams that are only provided on a single media stream. Forexample, a capturing user may provide subject matter that no othercapturing user at the same event provides, such as a celebrity cameo atthe event, on a media stream that only captures the actions of aspecific athlete.

As mentioned above, the media presentation system 102 can also identifynotable moments specific to a particular viewing user based on userprofile attributes of the viewing user. As described above, user profileattributes for a user (e.g., a viewing user) can include user profileinformation, such as biographic information, demographic information,behavioral information, social information, or other types ofdescriptive information. Further, the user profile attributes caninclude user actions, such as user-generated likes, comments, posts,shares, etc. For example, the media presentation system 102 can identifynotable moments particular to a viewing user based on the viewing usercomments about a particular topic or subject. Accordingly, by using userprofile attributes of the viewing user, the media presentation system102 can identify notable moments that are of specific interest to theviewing user.

To illustrate, the media presentation system 102 may determine that theevent is a rock concert that includes performance from various artists.Further, the media presentation system 102 may identify that the viewinguser likes a particular rock artist. As such, the media presentationsystem 102 may identify one or more notable moments when the viewinguser's favorite artist performs at the rock concert.

The media presentation system 102 can also identify notable momentsbased on social data. For example, when a threshold number of viewingusers replay a segment from a media stream, the media presentationsystem 102 may identify that segment as a notable moment (e.g., themedia presentation system 102 creates a heat-map indicating themost-watched most-replayed portions of a media stream to identifynotable moments). Further, the media presentation system 102 canidentify common user profile attributes from viewing users replaying asegment (e.g., the majority of viewing users replaying this segment arePink Floyd fans). In addition, the media presentation system 102 can useindications from social media shared by others (e.g., posts, shares,likes, comments, tweets, messages, etc.) to identify notable moments.

In some embodiments, the media presentation system 102 can prioritizethe notable moments for a particular viewing user. For example, if themedia presentation system 102 detects that a viewing user prefers asports team for which the media presentation system 102 has identified anumber of notable moments, the media presentation system 102 can rankthe identified notable moments. The media presentation system 102 maythen use the prioritization of the notable moments when providing one ormore media segments to a viewing user (e.g., provide the highestprioritized notable moments to a viewing user first, irrespective ofwhen the notable moments occurred).

Just as the media presentation system 102 can identify notable momentsfor one viewing user, the media presentation system 102 can identifynotable moments for each viewing user of the media presentation system102. For example, in one embodiment, the media presentation system 102identifies all possible notable moments for every viewing user. Next,the media presentation system 102 matches each viewing user's profileattributes to the identified notable moments. Then, when a viewing userrequests to view a notable moment, the media presentation system 102 canprovide the viewing user with one or more of the notable moments thatthe media presentation system 102 has previously identified and matchedfor that viewing user.

Additionally, or alternatively, the media presentation system 102 canidentify potential notable moments for an event as the notable momentoccurs, or after the notable moment occurs, but not associate thenotable moment with any viewing users. Later, when a viewing userrequests to view a notable moment, the media presentation system 102 canidentify one or more notable moments to provide to the viewing userbased on the viewing user's profile attributes and/or social data.Additionally, as the viewing user watches various notable moments andmanifests additional profile attributes (e.g., replaying sport plays bya particular athlete, skips over notable moments by a particular artist,likes a notable moment, etc.), the media presentation system 102 mayidentify additional notable moments and/or reprioritize notable momentsidentified for the viewing user. Further, the media presentation system102 may update and/or remove one or more notable moments that the mediapresentation system 102 has previously identified for the viewing userbased on feedback gathered from interactions of the viewing user. Forexample, if a viewing user skips a certain type of notable moment, themedia presentation system 102 may remove or reduce the priority ofsimilar notable moments identified for the viewing user.

Returning to FIG. 4C, in step 442, the media presentation system 102creates media segments from the identified notable moments from therelated media streams. More specifically, the media presentation system102 generates a media segment for each identified notable moment. Themedia presentation system 102 can create a media segment by extractingand/or copying a segment from a media stream corresponding to the event.As mentioned above, in some instances, the media presentation system 102creates multiple media segments from a single notable moment. Forexample, the media presentation system 102 identifies that a notablemoment is captured by multiple related media streams. For instance, themedia presentation system 102 can identify that three media streams, atdifferent locations through a basketball area, capture the samebuzzer-beater shot. As such, the media presentation system 102 generatesmultiple media segments for the three different media streams, eachcapturing the buzzer-beater shot from a different angle and/orperspective. In one or more embodiments, the media presentation system102 can combine two or more media segments to create combination mediasegment that includes different perspectives of the same notable moment.

FIG. 4C shows step 444, where the viewing client device 104 receives arequest to skim the media presentation. More specifically, the viewinguser can interact with the viewing client device 104 to request to skimthe media presentation system 102. Skimming the media presentationallows the viewing user to review and/or replay notable moments from themedia presentation that the viewing user has missed or would like toreplay, as discussed above. As such, by skimming previous content fromthe media presentation, the viewing user can quickly “catch-up” to thelive action for the event. Further, skimming allows the viewing user toenjoy missed moments from the media presentation and/or re-experiencehighlights of particular interest to the user.

Upon receiving the request to skim the media presentation, the viewingclient device 104 sends the request to skim to the media presentationsystem 102, as shown in step 446 of FIG. 4C. In some embodiments, theviewing client device 104 may also provide user profile informationabout the viewing user to assist the media presentation system 102 inidentifying one or more media segments to provide to the viewing user,as described above. Further, as described above, the media presentationsystem 102 can use the profile information and interactions of the userto update notable moments that the media presentation system 102 hasidentified for the viewing user.

In response to receiving the request for the viewing user to skim themedia presentation, the media presentation system 102 provides one ormore media segments to the viewing client device 104, as step 448illustrates in FIG. 4C. The media presentation system 102 can providethe media segments to the viewing client device 104 in a data streams.Alternatively, the media presentation system 102 can provide the mediasegment in the form of a discrete data file. In step 450, the viewingclient device 104 presents the media segments to the viewing user. Asone example, the viewing client device 104 begins playing the mediasegment upon receiving the corresponding media segments from the mediapresentation system 102. Further, the viewing client device 104 enablesthe viewing user to navigate through the media segments, as shown in452. For instance, the viewing client device 104 provides the viewinguser with options to pause, play, skip, replay, change the playbackspeed, etc., a media segment corresponding to a notable moment, asdescribed above. In addition, the viewing client device 104 can providenavigational tools allowing the user to view a plurality of mediasegments (e.g., displayed in a grind layout) and select one of the mediasegments to play.

To illustrate steps 444-452 by way of example, a viewing user named Janeaccesses a media presentation of the Beyoncé concert mid-way through theconcert. Upon joining, the viewing client device 104 presents aproduction media stream to Jane of the Beyoncé concert, which cutsbetween related media streams of Beyoncé's performance. After joining,Jane may request to view missed moments from the Beyoncé concert, suchas when Beyoncé performed one of Jane's favorite songs. As such, theviewing client device 104 may send the request to the media presentationsystem 102. In response, the media presentation system 102 sends theviewing client device 104 media segments corresponding to one or morenotable moments that occurred during the concert, some or all of whichmay be of particular interest to Jane, such as Jane's favorite Beyoncésong. Further, Jane may navigate through the different media segments,for example, by skipping less interesting moments and catching back upto the live performance.

FIGS. 5-7 provide illustrative examples of multiple users providingmedia streams from an event (e.g., a baseball game) to the mediapresentation system 102 described herein, and the media presentationsystem 102 providing one or more media streams to at least one viewinguser. In particular, FIG. 5 illustrates a baseball stadium wheremultiple users of the media presentation system provide media streams ofa baseball game. FIG. 6 illustrates exemplary media streams provided bycapturing users at the baseball game of FIG. 5. Further, FIG. 7illustrates a sequence-flow diagram showing a method for creating amixed media stream (e.g., a production media stream) from the mediastreams provided by the capturing users at the baseball game.

As mentioned above, FIG. 5 shows a baseball stadium 500 that is hostinga baseball game. One or more capturing users of the media presentationsystem 102 may be attending the baseball game at the baseball stadium500. As FIG. 5 illustrates, the capturing users are situated atdifferent locations throughout the stadium. The capturing users includeJake 512 a, Sue 512 b, Mark 512 c, Lisa 512 d, Rob 512 e, and Ryan 512 f(collectively referred to as “capturing users 512”). Each of thecapturing users 512 is associated with a client device (e.g., acapturing client device) that is capable of providing a media stream tothe media presentation system 102.

In one or more embodiments, the client devices may include thecapability to automatically report a location of the client device tothe media presentation system 102. For example, some of the clientdevices may use GPS and/or WI-FI to identify their location.Alternatively, a capturing user may manually input his or her location.For instance, the capturing user may identify on a stadium map where heor she is seated in the baseball stadium. In another instance, thecapturing user can provide the venue and seat location (e.g., section,row, seat). Regardless of how a client device determines its location,the client device may report its location, or location information, tothe media presentation system 102. Based on the location of each user,the media presentation system 102 may populate a location map orschematic that shows each user's location relative to the baseballstadium 500 and to the other capturing users 512. For instance, as shownin FIG. 5, Jake 512 a and Sue 512 b are located next to left field, Mark512 c is behind home plate, Lisa 512 d and Ryan 512 f is along the firstbase line, and Robert 512 d is located in the stands just beyond centerfield, and in front of the big screen 514.

During the baseball game, one or more of the capturing users 512 caneach provide a media stream to the media presentation system 102, andthe media presentation system 102 may provide the media streams toviewing users, as described herein. For example, at different timesthroughout the baseball game, Mark 512 c uses his client device toprovide a media stream from behind home plate, such as when a big hitteris at bat, when there is a play at home plate, when there is aconference on the pitcher's mound, etc. Other capturing users 512 mayalso provide media streams from their respective locations within thebaseball stadium 500. Because the capturing users 512 are spread outwithin the baseball stadium 500, when more than one capturing user 512captures media and provides a media stream at the same time, the mediapresentation system 102 can determine which media stream to provide to aviewing user watching a media presentation of the event. Further, asdescribed above, the media presentation system 102 can provide a viewinguser with different angles and perspectives of the baseball game byswitching between the various media streams from the client devices ofthe various capturing users 512.

In addition to the capturing users 512 capturing and providing mediastreams to the media presentation system 102, the media presentationsystem 102 may also obtain media streams from a third-party, such as abroadcaster, a news crew, a television network, a radio announcer, aprofessional photographer, or another entity capturing the baseballgame. As one example, the media presentation system 102 may mix theaudio provided by a sport's broadcaster with video media streamsprovided by the capturing users 512. As such, the media presentationsystem 102 can provide a viewing user video streams provided by thecapturing users 512 at the baseball game paired with synced audio fromthe sports announcer.

In a similar manner, one or more third-parties can communicate with themedia presentation system 102 to access one or more of the media streamscaptured at the baseball game. For example, a sports network maybroadcast clips from one or more media streams provided by one of thecapturing users 512 at the baseball game. As another example, FIG. 5shows a large video screen or “big screen” 514 that shows live actionand replays of a game at the baseball stadium. The media presentationsystem 102 may provide a media stream to the stadium production crew,and the stadium production crew displays one of the media stream on thebig screen 514 (e.g., the big screen 514 shows a media stream providedby Lisa 512 d).

In some example embodiments, multiple capturing users 512 may becapturing media streams from the same location, camera angle, or sameperspective. In these embodiments, the media presentation system 102 mayprovide a notification to one of the capturing users 512 that the useris providing a redundant media stream. Further, the media presentationsystem 102 may determine which media stream is redundant based oncomparing the media characteristics of the media streams. For example,as shown in FIG. 5, Jake 512 a and Sue 512 b are located near eachother. The media presentation system 102 may determine that the mediastream from Sue 512 b is overall better, and from a similar perspectivethan the media stream provided from Jake 512 a. As such, the mediapresentation system 102 may notify Jake 512 b that his media stream isnot needed at the time. Further, the media presentation system 102 couldrecommend that Jake 512 a move to another location, or notify Jake 512 awhen Sue 512 b is no longer providing a media stream of the baseballgame.

In addition to the capturing users 512 at the baseball game providingmedia streams of the game, a viewing user at the baseball game may viewone or more media streams via the media presentation system 102. Forexample, a viewing user at the baseball game may use the mediapresentation system 102 to view a different angle of the game. Asanother example, after a notable moment occurs at the game, a viewinguser may access media streams captured at the game to view replays ofthe notable moment using the systems and methods described above.

In some cases, the media presentation system 102 may limit distributionof the live media streams captured at the baseball game to only users atthe game, such as granting access based on the viewing user being withina defined geo-fenced area (i.e., a virtual perimeter for a real-worldgeographic area) and/or with a time window. For example, the mediastreams that Mark 512 c, Lisa 512 d, and Rob 512 e provide are only beviewable to other users at the game, such as Jake 512 a and Sue 512 b.Alternatively, or additionally, the media presentation system 102 mayprovide the media streams to other viewing users of the mediapresentation system 102 not present at the baseball game. In some cases,the media presentation system 102 may allow others access to the mediasegment only after the game finishes, or after a threshold period timehas passed since a live streaming media segment was provided (e.g.,after a two-hour delay).

In one or more embodiments, depending on a user's client devicecapabilities, a capturing user may be able to view media streams while,at the same time, providing a media stream. For example, a client devicecan provide a split screen that allows a user to view multiple mediasegments at the same time as capturing footage of the baseball game. Asanother example, the client device may provide a smaller image (e.g.,picture-in-picture) of the media stream over the image of a media streamprovided by another user 512 at the baseball game.

To further illustrate, FIG. 6 shows a various media streams 620 b-f ofthe baseball game provided by the capturing users 512 b-f shown in FIG.5. In general, FIG. 6 illustrates different angles and perspectivesprovided by the capturing users 512 b-f at the baseball game. Inparticular, Sue 512 b provides the second media stream 620 b, whichshows the baseball game from the stands above left field. Mark 512 cprovides the third media stream 620 c, which shows a view of the gamefrom behind home plate. Lisa 512 d provides the fourth media stream 620d, which shows a view of the pitcher on the mound. Rob 512 e providesthe fifth media stream 620 e, which shows a view of the game from theoutfield. Lastly, Ryan 512 f provides the sixth media stream 620 f,which shows an image of his wristwatch. Of note, the first media streamfrom Jake 512 a is not shown because Jake's media stream is redundant inview of the second media stream 620 b that Sue provides and/or Jake isnot currently providing a media stream to the media presentation system102.

In some example embodiments, and as shown in FIG. 6, a name and/or imageof the capturing user providing a media stream is shown in the bottomleft corner of the media stream. As such, when a viewing user is viewinga media stream, the name and/or image of the capturing user is displayedto the viewing user within the media stream. For example, Mark's pictureis shown in the bottom left corner of the third media stream 520 c inFIG. 6. Further, when the media stream of the capturing user isdisplayed on the big screen 514, the big screen 514 can display the nameand/or image of the capturing user so that fans at the stadium can seewho is providing the media stream. In some embodiments, the media streammay display a brand (e.g., a logo) indicating that the media stream issponsored by a specific entity or company.

In some instances, the media presentation system 102 can hide orinitially conceal the capturing user's picture and/or information from aviewing user. Upon the viewing user requesting to access theinformation, the media presentation system 102 can provide theinformation corresponding to the capturing user a menu or anotherdisplay interface. For example, the media presentation system 102 maypresent a credits display the indicates which capturing users areproviding media streams.

As briefly mentioned above, FIG. 7 illustrates a sequence-flow diagramshowing a method 700 for creating a mixed media stream (e.g., aproduction media stream). For purposes of explanation, reference will bemade to the media streams 620 b-f illustrated in FIG. 6 provided by thecapturing users 512 b-f illustrated in FIG. 5. Accordingly, the mediapresentation system 102 can create a mixed media stream (e.g., aproduction media stream) using the media streams provided by thecapturing users 512 b-f at the baseball game corresponding to FIGS. 5-6.

As shown in FIG. 7, one or more servers 101 having a media presentationsystem 102 communicate with a viewing client device 104 and multiplecapturing client devices 705. The viewing client device 104 and the oneor more contact client devices 705 may be example embodiments of theclient device(s) 204 described with regard to FIG. 2. Further, the mediapresentation system 102 may correspond to the media presentation systemdescribed herein.

As shown in step 710, the multiple client devices 705 capture media atan event. In particular, the capturing users 512 b-f (e.g., Sue 512 b,Mark 512 c, Lisa 512 d, Rob 512 e, and Ryan 512 f) use the multiplecapturing client devices 705 to capture footage of the baseball game.Upon capturing content from the baseball game, and as shown in step 712of FIG. 7, the capturing users 512 b-f each send a media stream to themedia presentation system 102 (e.g., media streams 620 b-f).

Upon receiving the multiple media streams 620 b-f, the mediapresentation system 102 determines the media characteristics for eachmedia stream, shown as step 714. As mentioned above, the mediapresentation system 102 can analyze a media stream to identify one ormore media characteristics associated with and/or manifested in themedia stream. By way of example, the media presentation system 102 mayanalyze the second media stream 620 b provided by Sue 620 b to identifymedia characteristics. As shown, the second media stream 620 b shows thebaseball field from Sue's perspective from the stands near left fieldand along the third-base line. Based on the second media stream 620 b,the media presentation system 102 can identify media characteristics,such as the signal strength of Sue's capturing client device, theresolution and/or frame rate of the second media stream 620 b, theshakiness of the second media stream 620 b, Sue's position with respectto the stadium (e.g., Sue's location in the stadium), and whichdirection Sue's capturing client device is facing (e.g., using thegyroscope to detect and/or confirm that Sue's client device is facingthe field).

In addition, the media presentation system 102 can identify additionalmedia characteristics from the second media stream 620 b itself, such asthe angle and perspective of the second media stream 620 b (e.g., thezoom level such as panoramic, wide angle, close-up, extreme close-up,etc.), the proximity between Sue and the action on the field (e.g.,whether the action is happening close to Sue). Further, the mediapresentation system 102 can identify media characteristics correspondingaudio features, such as whether the second media stream 620 b includesrecognizable audio, the amount or noise and interference, whichfrequencies are more prominent, and volume levels.

In some cases, the media presentation system 102 can use imagerecognition to identify additional media characteristics. For example,the media presentation system 102 determines that the fourth mediastream 620 d shows a particular baseball pitcher based on recognizingthe face of the pitcher and/or the pitcher's name or number on hisjersey. Similarly, the media presentation system 102 may use audiorecognition to detect media characteristics. For example, the mediapresentation system 102 uses audio recognition to identify when aspecific player is at bat based. For instance, the media presentationsystem 102 detects when the announcer at the stadium says “Next up,Bryce Harper.”

In some embodiments, the media presentation system 102 may identifymedia characteristics for a media stream using metadata from athird-party source. For example, the media presentation system 102 mayreceive game statistics and data from an analyst at the game. Forinstance, the game statistics may inform the media presentation system102 when each player is at bat, when a player makes a notable play, whenthe score changes, etc. Using this information, the media presentationsystem 102 can generate one or more contextual media characteristics toeach of the media streams 620 b-f. In other words, each time a playercomes up to bat or makes a play, the media presentation system 102 canassociate a media characteristic with one or more of the multiple mediastreams 620 b-f indicating the player's activity and the time intervalwithin which the activity occurred. The media presentation system 102can then use the contextual information and/or media characteristicswhen identifying notable moments.

As described below in additional detail, the media presentation system102 creates a mixed media stream from the multiple media streams 620b-f. In particular, once the media presentation system 102 determinesmedia characteristics for each media stream, the media presentationsystem 102 can select between one or more of the media streams to usefor the mixed media stream. Further, the media presentation system 102can use various production templates or video formats to decide when tocut or switch from one media stream to another media stream in additionto factoring in the media characteristics of each media streams.

To illustrate, in step 716, the media presentation system 102 selectsthe media stream from the media streams 620 b-f having the best videoquality based on the media characteristics (e.g., the media presentationsystem 102 selects the video stream from the media stream with the videoquality). For example, the media presentation system 102 determineswhich media stream provides the best balance of steadiness, cameraangle, zoom level, facial recognition, image recognition, location ofthe capturing client device, coverage of the action, etc. For instance,the media presentation system 102 determines that the fourth mediastream 620 d from Lisa 512 d provides the best video quality. Inaddition, the media presentation system 102 determines that the sixthmedia stream 620 f does not provide the best video quality because, eventhough the sixth media stream 620 f from Ryan 512 f is being sent fromthe baseball game, the sixth media stream 620 f shows a wristwatch andis not related to the baseball game.

In step 718, the media presentation system 102 selects the best mediastream(s) from the multiple media streams 620 b-f having the best audioquality based on the determined media characteristics (e.g., the mediapresentation system 102 selects the audio stream from the media streamwith the audio quality). For example, the media presentation system 102selects the media stream that has the clearest audio and leastinterference. In one embodiment, as described above, the mediapresentation system 102 uses an audio feed provided from a third-party,such as directly from a sports broadcasting system. Thus, if the mediapresentation system 102 selects video from one media stream and audiofrom another media stream, the media presentation system 102 may mixtogether the video stream and audio stream from the different selectedmedia streams. In some example embodiments, the media presentationsystem 102 mixes audio from multiple media streams together. Forexample, if the media presentation system 102 is providing a mixed mediastream for a concert, the media presentation system 102 may primarilyuse audio provided from a capturing user near the front, perhaps usingan auxiliary microphone and/or a stereo recording device. The mediapresentation system 102 can also add in portions of audio from thevarious other capturing client devices at the event.

In step 720, the media presentation system 102 may optionally performvideo editing. As described above, the media presentation system 102 mayperform video editing such as image cropping, image stabilization,reducing redeye, resizing, rotating, trimming, retouching, etc. Further,the media presentation system 102 can apply audio filters to the audiotrack of a media stream. As such, the media presentation system 102 canimprove the overall quality of each selected media stream beforecreating a mixed media stream and providing the mixed media stream to aviewing user. For example, in some example embodiments, the mediapresentation system 102 can add various editing effects such as text,stickers, sound/music, voice filters, and visual filters. To illustrate,the media presentation system 102 can dynamically add smart text to amedia stream. Generally, smart text includes contextually relevant text,such as text associated with an object detected in the media stream.Further, smart text can include stickers or other non-text graphics,such as ideograms, smileys, pictographs, frames or boarders around amedia stream, or other graphics that visually interact with media withina media stream.

In some example embodiments, smart text can be fixed to an identifiedfeature within the media stream. As such, the smart text can move withinthe media stream in connection with the identified feature. Toillustrate, if a name of a football player is displayed next to thefootball player, as the football player moves across the football field,the media presentation system 102 can move the label in connection withthe football player within the image. Similarly, if the mediapresentation system 102 switches between media stream showing thefootball field from different angles, the media presentation system 102can dynamically reposition the smart text to realign with the footballplayer.

Further, in connection with added smart text to a media stream based ondetecting content within a media stream, the media presentation system102 can add smart text to match the shape or trajectory of identifiedcontent. For example, if the media presentation system 102 detects acurved object in the media stream, the media presentation system 102 candisplay the smart text along the curved edge of the curved object.Similarly, the media presentation system 102 can have the shape of thesmart text change as the shape or the outline of a detected objectchanges. For instance, as a media stream zooms in on a subject, a textlabel associated with the subject can also increase in size.

In example embodiments, the media presentation system 102 may suggestwhich smart text to add based on the content within the media stream(e.g., detected through image recognition) and/or based on meta-dataassociated with the media stream (e.g., location, time, tags, etc.). Forexample, the media presentation system 102 may detect that the mediastream is related to a particular theme (e.g., ocean, mountains, party),and as such, recommend smart text associated with the identified theme.Further, in some embodiments, the media presentation system 102 mayautomatically add contextually relevant smart text, such as the name ofsinger on stage or an athlete that made a significant play shown in areplay.

Irrespective of whether the media presentation system 102 performs videoedits, the media presentation system 102 mixes the selected mediastreams together to create a mixed media stream, as shown in step 722.In particular, the media presentation system 102 combines the selectedmedia stream having the best video quality with the selected mediastream(s) having the best audio quality to create a mixed media stream.The media presentation system 102 can include the mixed media stream ina media presentation corresponding to the event.

In general, when mixing, combining, and cutting between the multiplemedia streams 620 b-f together, the media presentation system 102 cansynchronize the various media streams together so that switching fromone media stream to another media stream appears seamless to a viewinguser. In one or more embodiments, the media presentation system 102 canuse audio cues to synchronize two or more media streams. For example,the media presentation system 102 can detect the same frequency changesand align the media streams together. In additional, or alternativeembodiments, the media presentation system 102 can use the timestampsassociated with each media stream to align the media streams together.In some embodiments, the media presentation system 102 may use videocues, such as patterns of light flashes, to synchronize the variousmedia streams.

In step 724, shown in FIG. 7, the media presentation system 102 providesthe mixed media stream to the viewing client device 104 associated witha viewing user. For example, the media presentation system 102 mayprovide the mixed media stream in response to a viewing user selectingan option on the viewing client device to access a media presentationassociated with the event. Upon receiving the mixed media stream, theviewing user can watch and/or listen to the mixed media stream using theviewing client device 104. After initially sending the mixed mediastream to the viewing client device 104, the media presentation system102 updates media characteristics of each of the media streams, as shownin step 726. As described above, the media presentation system 102 cancontinuously reevaluate the media characteristics of each media streamto account for changes to each media stream. As a result, the mediapresentation system 102 again determines media characteristics such asthe video quality, audio quality, signal strength, camera angle, pastuser performance, previous number of view/likes, etc. In sum, the mediapresentation system 102 can repeat steps 716-726 of the sequence-flowmethod 700.

In addition to the foregoing, embodiments of the present invention alsocan be described in terms of flowcharts comprising acts and steps in amethod for accomplishing a particular result. For example, FIGS. 8-10,described below, illustrate flowcharts of exemplary methods inaccordance with one or more embodiments of the present invention. Themethods described in relation to FIGS. 8-10 can be performed with lessor more steps/acts or the steps/acts can be performed in differingorders. Additionally, the steps/acts described herein can be repeated orperformed in parallel with one another or in parallel with differentinstances of the same or similar steps/acts.

FIG. 8 illustrates a flowchart of a method 800 of dynamically providinga media stream to one or more users in accordance with one or moreembodiments described herein. In some example embodiments, the method800 may be performed by a media presentation system, such as the mediapresentation system 102 disclosed above in the previous figures. Themethod 800 includes an act 802 of receiving a media stream. Inparticular, the act 802 may involve receiving, from a client device 104associated with a capturing user 112 of a communication system 102, amedia stream. The media stream may include audio (e.g., an audiostream), video (e.g., a video stream), or a combination of audio andvideo. In addition, the act 802 may involve receiving one or more mediastreams corresponding to one or more capturing users at an event.Similarly, the method 800 may include an act of identifying an eventcorresponding to the media stream.

The method 800 also includes an act 804 of determining characteristicsfor the media stream. In particular, the act 804 may involve determiningone or more media characteristics for the media stream. For instance,the act 804 may involve analyzing the media stream to identify mediacharacteristics, such as video characteristics, audio characteristics,signal strength characteristic, and/or metadata characteristics. In somecases, the method 800 may include the act of weighting the one or moremedia characteristics before determining to send the media stream to thegroup of viewing users.

The method 800 includes an act 806 of determining to send the mediastream to a group of viewing users. In particular, the act 806 mayinvolve determining, based on the one or more media characteristics, tosend the media stream to a group of viewing users. For example, the act806 may involve determining if the media stream meets minimum qualitystandards before sharing the media stream with others. For instance, theact 806 may further involve determining that the media characteristicsof the media stream corresponding to video quality and/or audio qualityare above threshold levels.

In addition, the method 800 includes an act 808 of sending the mediastream to the group of viewing users. In particular, the act 808 mayinvolve sending the media stream to the group of viewing users when themedia stream characteristics merit sharing the media stream with others.Upon sending the media stream to the group of users may lead toreceiving feedback from one or more capturing users from the group ofviewing users. For example, a viewing user in the group of viewing usersmay comment, like, appreciate, or share the media stream.

The method 800 further includes an act 810 of detecting a change in thecharacteristics. In particular, the act 810 may involve detecting achange in the one or more media characteristics. In some instances, theact 810 of detecting a change in the one or more media characteristicsmay involve detecting the number of viewing users in the group ofviewing users that access and/or interact with the media stream. Also,the act 810 may involve detecting a change in video quality, audioquality, or other media characteristics of the media stream. Further,the method 800 may include an act of determining, based on the detectedchange in the one or more media characteristics, that the number ofviewing users accessing the media stream has reached a threshold number.

The method 800 further includes an act 812 of modifying the group basedon the detected change. In particular, the act 812 may involve modifyingthe group of viewing users based on the detected change to the one ormore media characteristics. In some example embodiments, the act 812 mayinvolve adding, replacing, or removing viewing users to the group ofviewing users.

The method 800 further includes an act 814 of sending the media streamto the modified group of viewing users. In addition, the method 800 mayinclude an act of providing, in a media presentation feed on a clientdevice associated with a viewing user, a plurality of mediapresentations, where each of the plurality of media presentationscorresponds to a media stream, determining one or more mediacharacteristics for each of the corresponding media streamspresentations, and prioritizing the plurality of media presentations inthe media presentation feed based on the one or more mediacharacteristics determined for each of the corresponding media streams.

In some example embodiments, the method 800 may include an act ofreceiving a request from a viewing user of the group of viewing users toshare the media stream with one or more additional viewing users. Inaddition, in response to the request, the method 800 may include an actof generating a message that includes a link to the media stream andsending the message with the link to the one or more additional viewingusers. In one or more embodiments, the method 800 may include an act ofreceiving an additional media stream from an additional client deviceassociated with an additional capturing user of the communicationsystem, determining to send the additional media stream to the group ofusers, and sending the additional media stream to the group of viewingusers as part of a media presentation that includes the media stream andthe additional media stream. The method 800 may also include an act ofproviding the media presentation in a media presentation feed on aclient device associated with a viewing user, where the mediapresentation includes the media stream and the additional media stream.

In additional embodiments, the method 800 may include an act of applyingproduction edits to the media stream before sending the media stream tothe group of viewing users. In some cases, applying the production editsincludes applying a square cropping to the media stream. Further, insome cases, applying the production edits includes stabilizing the mediastream based on gyroscopic information received from the client device.

FIG. 9 illustrates a flowchart of a method 900 for producing a mediastream from a plurality of related media streams in accordance with oneor more embodiments described herein. In some example embodiments, themethod 900 may be performed by a media presentation system, such as themedia presentation system 102 discussed above with respect to theprevious figures.

The method 900 includes an act 902 of receiving related media streamsfrom capturing users. In particular, the act 902 may involve receiving aplurality of related media streams from a plurality of client devicesassociated with a corresponding plurality of capturing users. Forexample, the act 902 may involve receiving various media streams frommultiple capturing users at a common event, such as a concert, sportsgame, speech, performance, etc.

The method 900 also includes an act 904 of sending a media presentationto a viewing user. In particular, the act 904 may involve sending amedia presentation to a client device 104 associated with a viewing user110 including content from the plurality of media streams. For example,the act 904 may involve mixing one or more media streams from therelated media stream to generate a media presentation, and sending themedia presentation to the viewing user. In some example embodiments, themedia presentation may be a representation of one or more media streamscaptured at a common location. For instance, in some embodiments, theact 904 may involve determining that the media streams are beingprovided by capturing users at a common location, where the commonlocation is an event having a virtually defined geographic boundary.

The method 900 further includes an act 906 of generating a data streamof characteristics for each media stream. In particular, the act 906 mayinvolve generating a data stream of time-based media characteristics foreach of the media streams. The act 906 may involve determining mediacharacteristics for each media stream. Using the determined mediacharacteristics, the act 906 can involve sending the determined mediacharacteristics in the data stream. Further, as the mediacharacteristics update, the act 906 can involve sending the updatedmedia characteristics in the data stream.

The method 900 additionally includes an act 908 of selecting a firstmedia stream to provide within the media presentation. In particular,the act 908 may involve selecting, based on the time-based mediacharacteristics within the data stream, a first media stream from theplurality of media streams to provide within the media presentation. Forexample, the act 908 may involve selecting the first media stream basedon the first media stream having the best, or at least above average,media characteristics over the other media streams.

The method 900 includes an act 910 of switching from providing the firstmedia stream to providing a second media stream within the mediapresentation. In particular, the act 910 may involve switching, based onupdated time-based media characteristics within the data stream, fromproviding the first media stream with the media presentation toproviding a second media stream from the plurality of media streamswithin the media presentation. For example, the act 910 may involvedetecting, based on the updated time-based media characteristics withinthe data stream, that the second media stream currently has better mediacharacteristics than the first media stream.

The method 900 may also include an act of identifying that the firstmedia stream and the second media stream both capture the common subjectmatter, and detecting that the first media stream and the second mediastream provide different perspectives of the common subject matter,where selecting the first media stream includes selecting the firstmedia stream based, in part, on the perspective provided by the firstmedia stream.

In some example embodiments, the method 900 may include an act ofidentifying a third media stream from the plurality of media streams,selecting, based on the time-based media characteristics within the datastream, audio from the third media stream, and mixing the audio from thethird media stream into the first media stream before providing thefirst media stream within the media presentation. Further, the method900 may include an act of mixing the audio from the third media streaminto the second media stream when providing the second media streamwithin the media presentation. In other embodiments, the method 900 mayinclude an act of detecting a face of an influencer within the firstmedia stream, and updating a media characteristic associated with thefirst media stream based on detecting the face of the influencer withinthe first media stream.

In some embodiments, the method 900 may include an act of detecting aperiod of audio silence in the second media stream being provided withinthe media presentation, identifying a previous segment from the firstmedia stream, and switching from providing the second media stream toproviding the identified previous segment from the first media streamwithin the media presentation, where identifying the previous segmentfrom the first media stream includes identifying a previous segment fromthe first media stream based on feedback received from the viewing user.

Further, in one or more embodiments, the method 900 may include an actof providing the related media streams to a client device associatedwith a producing user, passing control of selecting which media streamof the live related media streams to provide within the mediapresentation to the client device associated with the producing user,and receiving, from the client device associated with the producinguser, a selection of a media stream of the related media streams toinclude in the media presentation. In addition, the method 900 mayinclude an act of receiving, from the client device associated with theproducing user, an indication of which capturing users can provide mediastreams, where, in some cases, the producing user is an influencer. Themethod 900 may also include an act of recommending, based on thetime-based media characteristics within the data stream, a media streamfor the producing user to select to provide within the mediapresentation.

In some embodiments, the method 900 may also include an act of detectingan object within the second media stream, identifying text correspondingto the identified object, adding the text to the second media streamadjacent to the object, and tracking the identified object within thesecond liver media stream with the added text.

FIG. 10 illustrates a flowchart of a method 1000 for identifying andproviding notable moments of a media stream in accordance with one ormore embodiments described herein. In some example embodiments, themethod 1000 may be performed by a media presentation system, such as themedia presentation system 102 disclosed above in the previous figures.

The method 1000 includes an act 1002 of receiving media streams fromcapturing users corresponding to an event. In particular, the act 1002may involve receiving a plurality of media streams from a plurality ofcapturing users, where the plurality of media streams corresponds to anevent. For example, the act 1002 may involve receiving various mediastream from multiple capturing users at a common event, such as aconcert, sports game, speech, performance, etc. The act 1002 may alsoinvolve providing a media presentation associated with the event to theclient device associated with the viewing user, the media presentationcomprising a media stream, where providing the one or more mediasegments includes providing the one or more media segments within themedia presentation. In some cases, the one or more media segments areprovided to the client device associated with the viewing user withinthe media stream. In other embodiments, the one or more media segmentsare provided to the client device associated with the viewing userwithin the media stream.

The method 1000 also includes an act 1004 of identifying notable momentsfrom the event. In particular, the act 1004 may involve identifying aplurality of notable moments from the event captured by at least onemedia stream of the plurality of media streams. For example, the act1004 may involve identifying the one or more media segments from theplurality of media segments based on social data corresponding to theevent, where, in some cases, the social data corresponding to the eventincludes views of each notable moment.

In one or more embodiments, the method 1000 may also include the act ofidentifying a notable moment from the event captured by the plurality ofmedia streams, generating multiple media segments corresponding to theidentified notable moment, each media segment being generated from adifferent media stream of the plurality of media streams, and providing,to the client device associated with the viewing user, one or more ofthe multiple notable moments corresponding to the identified notablemoment.

In addition, the method 1000 includes an act 1006 of generating mediasegments corresponding to the identified notable moments. In particular,the act 1006 may involve generating a plurality of media segmentscorresponding to the identified plurality of notable moments. Forinstance, the act 1006 may involve generating and storing media segmentsthat correspond to the identified notable moments that occurred at theevent.

The method 1000 includes an act 1008 of identifying media segments basedon profile attributes of a viewing user. In particular, the act 1008 mayinvolve identifying one or more media segments from the plurality ofmedia segments based on one or more profile attributes of a viewinguser. In some cases, the profile attributes of the viewing user caninclude interests of the viewing user, comments by the viewing user, orshares by the viewing user.

The method 1000 includes an act 1010 of providing, to the viewing user,the media segments. In particular, the act 1010 may involve providing,to a client device associated with the viewing user, the one or moremedia segments. For example, the act 1010 may involve receiving, fromthe client device associated with the viewing user, a request to providethe one or more media segments to the client device associated with theviewing user.

In some example embodiments, the method 1000 may include an act ofgenerating a media stream from the plurality of media streams from theplurality of capturing users, providing, to the client device associatedwith the viewing user, the media stream generated from the plurality ofmedia streams, detecting a lag in content from the plurality of mediastreams, providing the selected one or more media segments within themedia stream, detecting completing of the lag in content from theplurality of media streams, and providing the content from the pluralityof media streams within the media stream.

The method 1000 may also include an act of receiving, from the clientdevice associated with the viewing user, user input to navigate to anext notable moment, and in response to the request to navigate to thenext notable moment, providing the a next identified notable moment tothe client device associated with the viewing user. Further, the method1000 may include an act of detecting that the viewing user replays oneof the one or more multiple notable moments provided to the clientdevice associated with the viewing user, and providing, to the clientdevice associated with the viewing user, another notable moment of themultiple notable moments corresponding to the identified notable moment.

In one or more embodiments, the method 1000 may include an act ofdetecting a change in profile attributes of the viewing user,identifying one or more additional media segments from the plurality ofmedia segments based on the change in profile attributes of the viewinguser, and providing, to the client device associated with the viewinguser, the one or more additional media segments.

Embodiments of the present disclosure may include or utilize a specialpurpose or general-purpose computer including computer hardware, suchas, for example, one or more processors and system memory, as discussedin greater detail below. Embodiments within the scope of the presentdisclosure also include physical and other computer-readable media forcarrying or storing computer-executable instructions and/or datastructures. In particular, one or more of the processes described hereinmay be implemented at least in part as instructions embodied in anon-transitory computer-readable medium and executable by one or morecomputing devices (e.g., any of the media content access devicesdescribed herein). In general, a processor (e.g., a microprocessor)receives instructions, from a non-transitory computer-readable medium,(e.g., a memory, etc.), and executes those instructions, therebyperforming one or more processes, including one or more of the processesdescribed herein.

Computer-readable media can be any available media that can be accessedby a general purpose or special purpose computer system.Computer-readable media that store computer-executable instructions arenon-transitory computer-readable storage media (devices).Computer-readable media that carry computer-executable instructions aretransmission media. Thus, by way of example, and not limitation,embodiments of the disclosure can include at least two distinctlydifferent kinds of computer-readable media: non-transitorycomputer-readable storage media (devices) and transmission media.

Non-transitory computer-readable storage media (devices) includes RAM,ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM),Flash memory, phase-change memory (“PCM”), other types of memory, otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to store desired programcode means in the form of computer-executable instructions or datastructures and which can be accessed by a general purpose or specialpurpose computer.

A “network” is defined as one or more data links that enable thetransport of electronic data between computer systems and/or modulesand/or other electronic devices. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as a transmissionmedium. Transmissions media can include a network and/or data linkswhich can be used to carry desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer. Combinationsof the above should also be included within the scope ofcomputer-readable media.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media tonon-transitory computer-readable storage media (devices) (or viceversa). For example, computer-executable instructions or data structuresreceived over a network or data link can be buffered in RAM within anetwork interface module (e.g., a “NIC”), and then eventuallytransferred to computer system RAM and/or to less volatile computerstorage media (devices) at a computer system. Thus, it should beunderstood that non-transitory computer-readable storage media (devices)can be included in computer system components that also (or evenprimarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions anddata which, when executed at a processor, cause a general purposecomputer, special purpose computer, or special purpose processing deviceto perform a certain function or group of functions. In someembodiments, computer-executable instructions are executed on ageneral-purpose computer to turn the general-purpose computer into aspecial purpose computer implementing elements of the disclosure. Thecomputer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, or evensource code. Although the subject matter has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the described features or acts described above.Rather, the described features and acts are disclosed as example formsof implementing the claims.

Those skilled in the art will appreciate that the disclosure may bepracticed in network computing environments with many types of computersystem configurations, including, personal computers, desktop computers,laptop computers, message processors, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, mobile telephones,PDAs, tablets, pagers, routers, switches, and the like. The disclosuremay also be practiced in distributed system environments where local andremote computer systems, which are linked (either by hardwired datalinks, wireless data links, or by a combination of hardwired andwireless data links) through a network, both perform tasks. In adistributed system environment, program modules may be located in bothlocal and remote memory storage devices.

Embodiments of the present disclosure can also be implemented in cloudcomputing environments. In this description, “cloud computing” isdefined as a model for enabling on-demand network access to a sharedpool of configurable computing resources. For example, cloud computingcan be employed in the marketplace to offer ubiquitous and convenienton-demand access to the shared pool of configurable computing resources.The shared pool of configurable computing resources can be rapidlyprovisioned via virtualization and released with low management effortor service provider interaction, and then scaled accordingly.

A cloud-computing model can be composed of various characteristics suchas, for example, on-demand self-service, broad network access, resourcepooling, rapid elasticity, measured service, and so forth. Acloud-computing model can also expose various service models, such as,for example, Software as a Service (“SaaS”), Platform as a Service(“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computingmodel can also be deployed using different deployment models such asprivate cloud, community cloud, public cloud, hybrid cloud, and soforth. In this description and in the claims, a “cloud-computingenvironment” is an environment in which cloud computing is employed.

FIG. 11 illustrates a block diagram of exemplary computing device 1100that may be configured to perform one or more of the processes describedabove. One will appreciate that one or more computing devices such asthe computing device 1100 may implement the media presentation system102 and/or computing devices 104, 105, 204, 104, 305, 15, 405, and 705.As shown by FIG. 11, the computing device 1100 can include a processor1102, a memory 1104, a storage device 1106, an I/O interface 1108, and acommunication interface 1110, which may be communicatively coupled byway of a communication infrastructure 1112. While an exemplary computingdevice 1100 is shown in FIG. 11, the components illustrated in FIG. 11are not intended to be limiting. Additional or alternative componentsmay be used in other embodiments. Furthermore, in certain embodiments,the computing device 1100 can include fewer components than those shownin FIG. 11. Components of the computing device 1100 shown in FIG. 11will now be described in additional detail.

In one or more embodiments, the processor 1102 includes hardware forexecuting instructions, such as those making up a computer program. Asan example and not by way of limitation, to execute instructions, theprocessor 1102 may retrieve (or fetch) the instructions from an internalregister, an internal cache, the memory 1104, or the storage device 1106and decode and execute them. In one or more embodiments, the processor1102 may include one or more internal caches for data, instructions, oraddresses. As an example and not by way of limitation, the processor1102 may include one or more instruction caches, one or more datacaches, and one or more translation lookaside buffers (TLBs).Instructions in the instruction caches may be copies of instructions inthe memory 1104 or the storage 1106.

The memory 1104 may be used for storing data, metadata, and programs forexecution by the processor(s). The memory 1104 may include one or moreof volatile and non-volatile memories, such as Random Access Memory(“RAM”), Read Only Memory (“ROM”), a solid state disk (“SSD”), Flash,Phase Change Memory (“PCM”), or other types of data storage. The memory1104 may be internal or distributed memory.

The storage device 1106 includes storage for storing data orinstructions. As an example and not by way of limitation, storage device1106 can include a non-transitory storage medium described above. Thestorage device 1106 may include a hard disk drive (HDD), a floppy diskdrive, flash memory, an optical disc, a magneto-optical disc, magnetictape, or a Universal Serial Bus (USB) drive or a combination of two ormore of these. The storage device 1106 may include removable ornon-removable (or fixed) media, where appropriate. The storage device1106 may be internal or external to the computing device 1100. In one ormore embodiments, the storage device 1106 is non-volatile, solid-statememory. In other embodiments, the storage device 1106 includes read-onlymemory (ROM). Where appropriate, this ROM may be mask programmed ROM,programmable ROM (PROM), erasable PROM (EPROM), electrically erasablePROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or acombination of two or more of these.

The I/O interface 1108 allows a user to provide input to, receive outputfrom, and otherwise transfer data to and receive data from computingdevice 1100. The I/O interface 1108 may include a mouse, a keypad or akeyboard, a touch screen, a camera, an optical scanner, networkinterface, modem, other known I/O devices or a combination of such I/Ointerfaces. The I/O interface 1108 may include one or more devices forpresenting output to a user, including, but not limited to, a graphicsengine, a display (e.g., a display screen), one or more output drivers(e.g., display drivers), one or more audio speakers, and one or moreaudio drivers. In certain embodiments, the I/O interface 1108 isconfigured to provide graphical data to a display for presentation to auser. The graphical data may be representative of one or more graphicaluser interfaces and/or any other graphical content as may serve aparticular implementation.

The communication interface 1110 can include hardware, software, orboth. In any event, the communication interface 1110 can provide one ormore interfaces for communication (such as, for example, packet-basedcommunication) between the computing device 1100 and one or more othercomputing devices or networks. As an example and not by way oflimitation, the communication interface 1110 may include a networkinterface controller (MC) or network adapter for communicating with anEthernet or other wire-based network or a wireless MC (WNIC) or wirelessadapter for communicating with a wireless network, such as a WI-FI.

Additionally, or alternatively, the communication interface 1110 mayfacilitate communications with an ad hoc network, a personal areanetwork (PAN), a local area network (LAN), a wide area network (WAN), ametropolitan area network (MAN), or one or more portions of the Internetor a combination of two or more of these. One or more portions of one ormore of these networks may be wired or wireless. As an example, thecommunication interface 1110 may facilitate communications with awireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FInetwork, a WI-MAX network, a cellular telephone network (such as, forexample, a Global System for Mobile Communications (GSM) network), orother suitable wireless network or a combination thereof.

Additionally, the communication interface 1110 may facilitatecommunications various communication protocols. Examples ofcommunication protocols that may be used include, but are not limitedto, data transmission media, communications devices, TransmissionControl Protocol (“TCP”), Internet Protocol (“IP”), File TransferProtocol (“FTP”), Telnet, Hypertext Transfer Protocol (“HTTP”),Hypertext Transfer Protocol Secure (“HTTPS”), Session InitiationProtocol (“SIP”), Simple Object Access Protocol (“SOAP”), ExtensibleMark-up Language (“XML”) and variations thereof, Simple Mail TransferProtocol (“SMTP”), Real-Time Transport Protocol (“RTP”), User DatagramProtocol (“UDP”), Global System for Mobile Communications (“GSM”)technologies, Code Division Multiple Access (“CDMA”) technologies, TimeDivision Multiple Access (“TDMA”) technologies, Short Message Service(“SMS”), Multimedia Message Service (“MMS”), radio frequency (“RF”)signaling technologies, Long Term Evolution (“LTE”) technologies,wireless communication technologies, in-band and out-of-band signalingtechnologies, and other suitable communications networks andtechnologies.

The communication infrastructure 1112 may include hardware, software, orboth that connects components of the computing device 1100 to eachother. As an example and not by way of limitation, the communicationinfrastructure 1112 may include an Accelerated Graphics Port (AGP) orother graphics bus, an Enhanced Industry Standard Architecture (EISA)bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, anIndustry Standard Architecture (ISA) bus, an INFINIBAND interconnect, alow-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture(MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express(PCIe) bus, a serial advanced technology attachment (SATA) bus, a VideoElectronics Standards Association local (VLB) bus, or another suitablebus or a combination thereof.

As mentioned above, the communication system 100 can include a socialnetworking system. A social networking system may enable its users (suchas persons or organizations) to interact with the system and with eachother. The social networking system may, with input from a user, createand store in the social networking system a user profile associated withthe user. The user profile may include demographic information,communication-channel information, and information on personal interestsof the user. The social networking system may also, with input from auser, create and store a record of relationships of the user with otherusers of the social networking system, as well as provide services (e.g.wall posts, photo-sharing, on-line calendars and event organization,messaging, games, or advertisements) to facilitate social interactionbetween or among users. Also, the social networking system may allowusers to post photographs and other multimedia content items to a user'sprofile page (typically known as “wall posts” or “timeline posts”) or ina photo album, both of which may be accessible to other users of thesocial networking system depending upon the user's configured privacysettings.

FIG. 12 illustrates an example network environment 1200 of a socialnetworking system. Network environment 1200 includes a client system1206, a social networking system 1202, and a third-party system 1208connected to each other by a network 1204. Although FIG. 12 illustratesa particular arrangement of client system 1206, social networking system1202, third-party system 1208, and network 1204, this disclosurecontemplates any suitable arrangement of client system 1206, socialnetworking system 1202, third-party system 1208, and network 1204. As anexample and not by way of limitation, two or more of client system 1206,social networking system 1202, and third-party system 1208 may beconnected to each other directly, bypassing network 1204. As anotherexample, two or more of client system 1206, social networking system1202, and third-party system 1208 may be physically or logicallyco-located with each other in whole, or in part. Moreover, although FIG.12 illustrates a particular number of client systems 1206, socialnetworking systems 1202, third-party systems 1208, and networks 1204,this disclosure contemplates any suitable number of client systems 1206,social networking systems 1202, third-party systems 1208, and networks1204. As an example and not by way of limitation, network environment1200 may include multiple client system 1206, social networking systems1202, third-party systems 1208, and networks 1204.

This disclosure contemplates any suitable network 1204. As an exampleand not by way of limitation, one or more portions of network 1204 mayinclude an ad hoc network, an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a wireless WAN (WWAN), a metropolitan area network(MAN), a portion of the Internet, a portion of the Public SwitchedTelephone Network (PSTN), a cellular telephone network, or a combinationof two or more of these. Network 1204 may include one or more networks1204.

Links may connect client system 1206, social networking system 1202, andthird-party system 1208 to communication network 1204 or to each other.This disclosure contemplates any suitable links. In particularembodiments, one or more links include one or more wireline (such as forexample Digital Subscriber Line (DSL) or Data Over Cable ServiceInterface Specification (DOCSIS)), wireless (such as for example Wi-Fior Worldwide Interoperability for Microwave Access (WiMAX)), or optical(such as for example Synchronous Optical Network (SONET) or SynchronousDigital Hierarchy (SDH)) links. In particular embodiments, one or morelinks each include an ad hoc network, an intranet, an extranet, a VPN, aLAN, a WLAN, a WAN, a WWAN, a MAN, a portion of the Internet, a portionof the PSTN, a cellular technology-based network, a satellitecommunications technology-based network, another link, or a combinationof two or more such links. Links need not necessarily be the samethroughout network environment 1200. One or more first links may differin one or more respects from one or more second links.

In particular embodiments, client system 1206 may be an electronicdevice including hardware, software, or embedded logic components or acombination of two or more such components and capable of carrying outthe appropriate functionalities implemented or supported by clientsystem 1206. As an example and not by way of limitation, a client system1206 may include any of the client devices or systems described in theabove figures. A client system 1206 may enable a network user at clientsystem 1206 to access network 1204. A client system 1206 may enable itsuser to communicate with other users at other client systems 1206.

In particular embodiments, client system 1206 may include a web browser,such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME, or MOZILLA FIREFOX,and may have one or more add-ons, plug-ins, or other extensions, such asTOOLBAR or YAHOO TOOLBAR. A user at client system 1206 may enter aUniform Resource Locator (URL) or other address directing the webbrowser to a particular server (such as server, or a server associatedwith a third-party system 1208), and the web browser may generate aHyper Text Transfer Protocol (HTTP) request and communicate the HTTPrequest to server. The server may accept the HTTP request andcommunicate to client system 1206 one or more Hyper Text Markup Language(HTML) files responsive to the HTTP request. Client system 1206 mayrender a webpage based on the HTML files from the server forpresentation to the user. This disclosure contemplates any suitablewebpage files. As an example and not by way of limitation, webpages mayrender from HTML files, Extensible Hyper Text Markup Language (XHTML)files, or Extensible Markup Language (XML) files, according toparticular needs. Such pages may also execute scripts such as, forexample and without limitation, those written in JAVASCRIPT, JAVA,MICROSOFT SILVERLIGHT, combinations of markup language and scripts suchas AJAX (Asynchronous JAVASCRIPT and XML), and the like. Herein,reference to a webpage encompasses one or more corresponding webpagefiles (which a browser may use to render the webpage) and vice versa,where appropriate.

In particular embodiments, social networking system 1202 may be anetwork-addressable computing system that can host an online socialnetwork. Social networking system 1202 may generate, store, receive, andsend social-networking data, such as, for example, user-profile data,concept-profile data, social-graph information, or other suitable datarelated to the online social network. Social networking system 1202 maybe accessed by the other components of network environment 1200 eitherdirectly or via network 1204. In particular embodiments, socialnetworking system 1202 may include one or more servers. Each server maybe a unitary server or a distributed server spanning multiple computersor multiple datacenters. Servers may be of various types, such as, forexample and without limitation, web server, news server, mail server,message server, advertising server, file server, application server,exchange server, database server, proxy server, another server suitablefor performing functions or processes described herein, or anycombination thereof. In particular embodiments, each server may includehardware, software, or embedded logic components or a combination of twoor more such components for carrying out the appropriate functionalitiesimplemented or supported by server. In particular embodiments, socialnetworking system 1202 may include one or more data stores. Data storesmay be used to store various types of information. In particularembodiments, the information stored in data stores may be organizedaccording to specific data structures. In particular embodiments, eachdata store may be a relational, columnar, correlation, or other suitabledatabase. Although this disclosure describes or illustrates particulartypes of databases, this disclosure contemplates any suitable types ofdatabases. Particular embodiments may provide interfaces that enable aclient system 1206, a social networking system 1202, or a third-partysystem 1208 to manage, retrieve, modify, add, or delete, the informationstored in data store.

In particular embodiments, social networking system 1202 may store oneor more social graphs in one or more data stores. In particularembodiments, a social graph may include multiple nodes—which may includemultiple user nodes (each corresponding to a particular user) ormultiple concept nodes (each corresponding to a particular concept)—andmultiple edges connecting the nodes. Social networking system 1202 mayprovide users of the online social network the ability to communicateand interact with other users. In particular embodiments, users may jointhe online social network via social networking system 1202 and then addconnections (e.g., relationships) to a number of other users of socialnetworking system 1202 whom they want to be connected to. Herein, theterm “friend” may refer to any other user of social networking system1202 with whom a user has formed a connection, association, orrelationship via social networking system 1202.

In particular embodiments, social networking system 1202 may provideusers with the ability to take actions on various types of items orobjects, supported by social networking system 1202. As an example andnot by way of limitation, the items and objects may include groups orsocial networks to which users of social networking system 1202 maybelong, events or calendar entries in which a user might be interested,computer-based applications that a user may use, transactions that allowusers to buy or sell items via the service, interactions withadvertisements that a user may perform, or other suitable items orobjects. A user may interact with anything that is capable of beingrepresented in social networking system 1202 or by an external system ofthird-party system 1208, which is separate from social networking system1202 and coupled to social networking system 1202 via a network 1204.

In particular embodiments, social networking system 1202 may be capableof linking a variety of entities. As an example and not by way oflimitation, social networking system 1202 may enable users to interactwith each other as well as receive content from third-party systems 1208or other entities, or to allow users to interact with these entitiesthrough an application programming interfaces (API) or othercommunication channels.

In particular embodiments, a third-party system 1208 may include one ormore types of servers, one or more data stores, one or more interfaces,including but not limited to APIs, one or more web services, one or morecontent sources, one or more networks, or any other suitable components,e.g., that servers may communicate with. A third-party system 1208 maybe operated by a different entity from an entity operating socialnetworking system 1202. In particular embodiments, however, socialnetworking system 1202 and third-party systems 1208 may operate inconjunction with each other to provide social-networking services tousers of social networking system 1202 or third-party systems 1208. Inthis sense, social networking system 1202 may provide a platform, orbackbone, which other systems, such as third-party systems 1208, may useto provide social-networking services and functionality to users acrossthe Internet.

In particular embodiments, a third-party system 1208 may include athird-party content object provider. A third-party content objectprovider may include one or more sources of content objects, which maybe communicated to a client system 1206. As an example and not by way oflimitation, content objects may include information regarding things oractivities of interest to the user, such as, for example, movie showtimes, movie reviews, restaurant reviews, restaurant menus, productinformation and reviews, or other suitable information. As anotherexample and not by way of limitation, content objects may includeincentive content objects, such as coupons, discount tickets, giftcertificates, or other suitable incentive objects.

In particular embodiments, social networking system 1202 also includesuser-generated content objects, which may enhance a user's interactionswith social networking system 1202. User-generated content may includeanything a user can add, upload, send, or “post” to social networkingsystem 1202. As an example and not by way of limitation, a usercommunicates posts to social networking system 1202 from a client system1206. Posts may include data such as status updates or other textualdata, location information, photos, videos, links, music or othersimilar data or media. Content may also be added to social networkingsystem 1202 by a third-party through a “communication channel,” such asa newsfeed or stream.

In particular embodiments, social networking system 1202 may include avariety of servers, sub-systems, programs, modules, logs, and datastores. In particular embodiments, social networking system 1202 mayinclude one or more of the following: a web server, action logger,API-request server, relevance-and-ranking engine, content-objectclassifier, notification controller, action log,third-party-content-object-exposure log, inference module,authorization/privacy server, search module, advertisement-targetingmodule, user-interface module, user-profile store, connection store,third-party content store, or location store. Social networking system1202 may also include suitable components such as network interfaces,security mechanisms, load balancers, failover servers,management-and-network-operations consoles, other suitable components,or any suitable combination thereof. In particular embodiments, socialnetworking system 1202 may include one or more user-profile stores forstoring user profiles. A user profile may include, for example,biographic information, demographic information, behavioral information,social information, or other types of descriptive information, such aswork experience, educational history, hobbies or preferences, interests,affinities, or location. Interest information may include interestsrelated to one or more categories. Categories may be general orspecific. As an example and not by way of limitation, if a user “likes”an article about a brand of shoes the category may be the brand, or thegeneral category of “shoes” or “clothing.” A connection store may beused for storing connection information about users. The connectioninformation may indicate users who have similar or common workexperience, group memberships, hobbies, educational history, or are inany way related or share common attributes. The connection informationmay also include user-defined connections between different users andcontent (both internal and external). A web server may be used forlinking social networking system 1202 to one or more client systems 1206or one or more third-party system 1208 via network 1204. The web servermay include a mail server or other messaging functionality for receivingand routing messages between social networking system 1202 and one ormore client systems 1206. An API-request server may allow a third-partysystem 1208 to access information from social networking system 1202 bycalling one or more APIs. An action logger may be used to receivecommunications from a web server about a user's actions on or off socialnetworking system 1202. In conjunction with the action log, athird-party-content-object log may be maintained of user exposures tothird-party-content objects. A notification controller may provideinformation regarding content objects to a client system 1206.Information may be pushed to a client system 1206 as notifications, orinformation may be pulled from client system 1206 responsive to arequest received from client system 1206. Authorization servers may beused to enforce one or more privacy settings of the users of socialnetworking system 1202. A privacy setting of a user determines howparticular information associated with a user can be shared. Theauthorization server may allow users to opt in to or opt out of havingtheir actions logged by social networking system 1202 or shared withother systems (e.g., third-party system 1208), such as, for example, bysetting appropriate privacy settings. Third-party-content-object storesmay be used to store content objects received from third parties, suchas a third-party system 1208. Location stores may be used for storinglocation information received from client systems 1206 associated withusers. Advertisement-pricing modules may combine social information, thecurrent time, location information, or other suitable information toprovide relevant advertisements, in the form of notifications, to auser.

FIG. 13 illustrates example social graph 1300. In particularembodiments, social networking system 1202 may store one or more socialgraphs 1300 in one or more data stores. In particular embodiments,social graph 1300 may include multiple nodes—which may include multipleuser nodes 1302 or multiple concept nodes 1304—and multiple edges 1306connecting the nodes. Example social graph 1300 illustrated in FIG. 13is shown, for didactic purposes, in a two-dimensional visual maprepresentation. In particular embodiments, a social networking system1202, client system 1206, or third-party system 1208 may access socialgraph 1300 and related social-graph information for suitableapplications. The nodes and edges of social graph 1300 may be stored asdata objects, for example, in a data store (such as a social-graphdatabase). Such a data store may include one or more searchable or queryable indexes of nodes or edges of social graph 1300.

In particular embodiments, a user node 1302 may correspond to a user ofsocial networking system 1202. As an example and not by way oflimitation, a user may be an individual (human user), an entity (e.g.,an enterprise, business, or third-party application), or a group (e.g.,of individuals or entities) that interacts or communicates with or oversocial networking system 1202. In particular embodiments, when a userregisters for an account with social networking system 1202, socialnetworking system 1202 may create a user node 1302 corresponding to theuser, and store the user node 1302 in one or more data stores. Users anduser nodes 1302 described herein may, where appropriate, refer toregistered users and user nodes 1302 associated with registered users.In addition, or as an alternative, users and user nodes 1302 describedherein may, where appropriate, refer to users that have not registeredwith social networking system 1202. In particular embodiments, a usernode 1302 may be associated with information provided by a user orinformation gathered by various systems, including social networkingsystem 1202. As an example and not by way of limitation, a user mayprovide his or her name, profile picture, contact information, birthdate, sex, marital status, family status, employment, educationbackground, preferences, interests, or other demographic information.Each user node of the social graph may have a corresponding web page(typically known as a profile page). In response to a request includinga user name, the social networking system can access a user nodecorresponding to the user name, and construct a profile page includingthe name, a profile picture, and other information associated with theuser. A profile page of a first user may display to a second user all ora portion of the first user's information based on one or more privacysettings by the first user and the relationship between the first userand the second user.

In particular embodiments, a concept node 1304 may correspond to aconcept. As an example and not by way of limitation, a concept maycorrespond to a place (such as, for example, a movie theater,restaurant, landmark, or city); a website (such as, for example, awebsite associated with social-network system 1202 or a third-partywebsite associated with a web-application server); an entity (such as,for example, a person, business, group, sports team, or celebrity); aresource (such as, for example, an audio file, video file, digitalphoto, text file, structured document, or application) which may belocated within social networking system 1202 or on an external server,such as a web-application server; real or intellectual property (suchas, for example, a sculpture, painting, movie, game, song, idea,photograph, or written work); a game; an activity; an idea or theory;another suitable concept; or two or more such concepts. A concept node1304 may be associated with information of a concept provided by a useror information gathered by various systems, including social networkingsystem 1202. As an example and not by way of limitation, information ofa concept may include a name or a title; one or more images (e.g., animage of the cover page of a book); a location (e.g., an address or ageographical location); a website (which may be associated with a URL);contact information (e.g., a phone number or an email address); othersuitable concept information; or any suitable combination of suchinformation. In particular embodiments, a concept node 1304 may beassociated with one or more data objects corresponding to informationassociated with concept node 1304. In particular embodiments, a conceptnode 1304 may correspond to one or more webpages.

In particular embodiments, a node in social graph 1300 may represent orbe represented by a webpage (which may be referred to as a “profilepage”). Profile pages may be hosted by or accessible to socialnetworking system 1202. Profile pages may also be hosted on third-partywebsites associated with a third-party server 1208. As an example andnot by way of limitation, a profile page corresponding to a particularexternal webpage may be the particular external webpage and the profilepage may correspond to a particular concept node 1304. Profile pages maybe viewable by all or a selected subset of other users. As an exampleand not by way of limitation, a user node 1302 may have a correspondinguser-profile page in which the corresponding user may add content, makedeclarations, or otherwise express himself or herself. As anotherexample and not by way of limitation, a concept node 1304 may have acorresponding concept-profile page in which one or more users may addcontent, make declarations, or express themselves, particularly inrelation to the concept corresponding to concept node 1304.

In particular embodiments, a concept node 1304 may represent athird-party webpage or resource hosted by a third-party system 1208. Thethird-party webpage or resource may include, among other elements,content, a selectable or other icon, or other inter-actable object(which may be implemented, for example, in JavaScript, AJAX, or PHPcodes) representing an action or activity. As an example and not by wayof limitation, a third-party webpage may include a selectable icon suchas “like,” “check in,” “eat,” “recommend,” or another suitable action oractivity. A user viewing the third-party webpage may perform an actionby selecting one of the icons (e.g., “eat”), causing a client system1206 to send to social networking system 1202 a message indicating theuser's action. In response to the message, social networking system 1202may create an edge (e.g., an “eat” edge) between a user node 1302corresponding to the user and a concept node 1304 corresponding to thethird-party webpage or resource and store edge 1306 in one or more datastores.

In particular embodiments, a pair of nodes in social graph 1300 may beconnected to each other by one or more edges 1306. An edge 1306connecting a pair of nodes may represent a relationship between the pairof nodes. In particular embodiments, an edge 1306 may include orrepresent one or more data objects or attributes corresponding to therelationship between a pair of nodes. As an example and not by way oflimitation, a first user may indicate that a second user is a “friend”of the first user. In response to this indication, social networkingsystem 1202 may send a “friend request” to the second user. If thesecond user confirms the “friend request,” social networking system 1202may create an edge 1306 connecting the first user's user node 1302 tothe second user's user node 1302 in social graph 1300 and store edge1306 as social-graph information in one or more of data stores. In theexample of FIG. 13, social graph 1300 includes an edge 1306 indicating afriend relation between user nodes 1302 of user “A” and user “B” and anedge indicating a friend relation between user nodes 1302 of user “C”and user “B.” Although this disclosure describes or illustratesparticular edges 1306 with particular attributes connecting particularuser nodes 1302, this disclosure contemplates any suitable edges 1306with any suitable attributes connecting user nodes 1302. As an exampleand not by way of limitation, an edge 1306 may represent a friendship,family relationship, business or employment relationship, fanrelationship, follower relationship, visitor relationship, subscriberrelationship, superior/subordinate relationship, reciprocalrelationship, non-reciprocal relationship, another suitable type ofrelationship, or two or more such relationships. Moreover, although thisdisclosure generally describes nodes as being connected, this disclosurealso describes users or concepts as being connected. Herein, referencesto users or concepts being connected may, where appropriate, refer tothe nodes corresponding to those users or concepts being connected insocial graph 1300 by one or more edges 1306.

In particular embodiments, an edge 1306 between a user node 1302 and aconcept node 1304 may represent a particular action or activityperformed by a user associated with user node 1302 toward a conceptassociated with a concept node 1304. As an example and not by way oflimitation, as illustrated in FIG. 13, a user may “like,” “attended,”“played,” “listened,” “cooked,” “worked at,” or “watched” a concept,each of which may correspond to an edge type or subtype. Aconcept-profile page corresponding to a concept node 1304 may include,for example, a selectable “check in” icon (such as, for example, aclickable “check in” icon) or a selectable “add to favorites” icon.Similarly, after a user clicks these icons, social networking system1202 may create a “favorite” edge or a “check in” edge in response to auser's action corresponding to a respective action. As another exampleand not by way of limitation, a user (user “C”) may listen to aparticular song (“Ramble On”) using a particular application (SPOTIFY,which is an online music application). In this case, social networkingsystem 1202 may create a “listened” edge 1306 and a “used” edge (asillustrated in FIG. 13) between user nodes 1302 corresponding to theuser and concept nodes 1304 corresponding to the song and application toindicate that the user listened to the song and used the application.Moreover, social networking system 1202 may create a “played” edge 1306(as illustrated in FIG. 13) between concept nodes 1304 corresponding tothe song and the application to indicate that the particular song wasplayed by the particular application. In this case, “played” edge 1306corresponds to an action performed by an external application (SPOTIFY)on an external audio file (the song “Imagine”). Although this disclosuredescribes particular edges 1306 with particular attributes connectinguser nodes 1302 and concept nodes 1304, this disclosure contemplates anysuitable edges 1306 with any suitable attributes connecting user nodes1302 and concept nodes 1304. Moreover, although this disclosuredescribes edges between a user node 1302 and a concept node 1304representing a single relationship, this disclosure contemplates edgesbetween a user node 1302 and a concept node 1304 representing one ormore relationships. As an example and not by way of limitation, an edge1306 may represent both that a user likes and has used at a particularconcept. Alternatively, another edge 1306 may represent each type ofrelationship (or multiples of a single relationship) between a user node1302 and a concept node 1304 (as illustrated in FIG. 13 between usernode 1302 for user “E” and concept node 1304 for “SPOTIFY”).

In particular embodiments, social networking system 1202 may create anedge 1306 between a user node 1302 and a concept node 1304 in socialgraph 1300. As an example and not by way of limitation, a user viewing aconcept-profile page (such as, for example, by using a web browser or aspecial-purpose application hosted by the user's client system 1206) mayindicate that he or she likes the concept represented by the conceptnode 1304 by clicking or selecting a “Like” icon, which may cause theuser's client system 1206 to send to social networking system 1202 amessage indicating the user's liking of the concept associated with theconcept-profile page. In response to the message, social networkingsystem 1202 may create an edge 1306 between user node 1302 associatedwith the user and concept node 1304, as illustrated by “like” edge 1306between the user and concept node 1304. In particular embodiments,social networking system 1202 may store an edge 1306 in one or more datastores. In particular embodiments, an edge 1306 may be automaticallyformed by social networking system 1202 in response to a particular useraction. As an example and not by way of limitation, if a first useruploads a picture, watches a movie, or listens to a song, an edge 1306may be formed between user node 1302 corresponding to the first user andconcept nodes 1304 corresponding to those concepts. Although thisdisclosure describes forming particular edges 1306 in particularmanners, this disclosure contemplates forming any suitable edges 1306 inany suitable manner.

In particular embodiments, an advertisement may be text (which may beHTML-linked), one or more images (which may be HTML-linked), one or morevideos, audio, one or more ADOBE FLASH files, a suitable combination ofthese, or any other suitable advertisement in any suitable digitalformat presented on one or more webpages, in one or more e-mails, or inconnection with search results requested by a user. In addition, or asan alternative, an advertisement may be one or more sponsored stories(e.g., a news-feed or ticker item on social networking system 1202). Asponsored story may be a social action by a user (such as “liking” apage, “liking” or commenting on a post on a page, RSVPing to an eventassociated with a page, voting on a question posted on a page, checkingin to a place, using an application or playing a game, or “liking” orsharing a website) that an advertiser promotes, for example, by havingthe social action presented within a pre-determined area of a profilepage of a user or other page, presented with additional informationassociated with the advertiser, bumped up or otherwise highlightedwithin news feeds or tickers of other users, or otherwise promoted. Theadvertiser may pay to have the social action promoted. As an example andnot by way of limitation, advertisements may be included among thesearch results of a search-results page, where sponsored content ispromoted over non-sponsored content.

In particular embodiments, an advertisement may be requested for displaywithin social-networking-system webpages, third-party webpages, or otherpages. An advertisement may be displayed in a dedicated portion of apage, such as in a banner area at the top of the page, in a column atthe side of the page, in a GUI of the page, in a pop-up window, in adrop-down menu, in an input field of the page, over the top of contentof the page, or elsewhere with respect to the page. In addition, or asan alternative, an advertisement may be displayed within an application.An advertisement may be displayed within dedicated pages, requiring theuser to interact with or watch the advertisement before the user mayaccess a page or utilize an application. The user may, for example viewthe advertisement through a web browser.

A user may interact with an advertisement in any suitable manner. Theuser may click or otherwise select the advertisement. By selecting theadvertisement, the user may be directed to (or a browser or otherapplication being used by the user) a page associated with theadvertisement. At the page associated with the advertisement, the usermay take additional actions, such as purchasing a product or serviceassociated with the advertisement, receiving information associated withthe advertisement, or subscribing to a newsletter associated with theadvertisement. An advertisement with audio or video may be played byselecting a component of the advertisement (like a “play button”).Alternatively, by selecting the advertisement, social networking system1202 may execute or modify a particular action of the user.

An advertisement may also include social-networking-system functionalitythat a user may interact with. As an example and not by way oflimitation, an advertisement may enable a user to “like” or otherwiseendorse the advertisement by selecting an icon or link associated withendorsement. As another example and not by way of limitation, anadvertisement may enable a user to search (e.g., by executing a query)for content related to the advertiser. Similarly, a user may share theadvertisement with another user (e.g., through social networking system1202) or RSVP (e.g., through social networking system 1202) to an eventassociated with the advertisement. In addition, or as an alternative, anadvertisement may include social-networking-system context directed tothe user. As an example and not by way of limitation, an advertisementmay display information about a friend of the user within socialnetworking system 1202 who has taken an action associated with thesubject matter of the advertisement.

In particular embodiments, social networking system 1202 may determinethe social-graph affinity (which may be referred to herein as“affinity”) of various social-graph entities for each other. Affinitymay represent the strength of a relationship or level of interestbetween particular objects associated with the online social network,such as users, concepts, content, actions, advertisements, other objectsassociated with the online social network, or any suitable combinationthereof. Affinity may also be determined with respect to objectsassociated with third-party systems 1208 or other suitable systems. Anoverall affinity for a social-graph entity for each user, subjectmatter, or type of content may be established. The overall affinity maychange based on continued monitoring of the actions or relationshipsassociated with the social-graph entity. Although this disclosuredescribes determining particular affinities in a particular manner, thisdisclosure contemplates determining any suitable affinities in anysuitable manner.

In particular embodiments, social networking system 1202 may measure orquantify social-graph affinity using an affinity coefficient (which maybe referred to herein as “coefficient”). The coefficient may representor quantify the strength of a relationship between particular objectsassociated with the online social network. The coefficient may alsorepresent a probability or function that measures a predictedprobability that a user will perform a particular action based on theuser's interest in the action. In this way, a user's future actions maybe predicted based on the user's prior actions, where the coefficientmay be calculated at least in part the history of the user's actions.Coefficients may be used to predict any number of actions, which may bewithin or outside of the online social network. As an example and not byway of limitation, these actions may include various types ofcommunications, such as sending messages, posting content, or commentingon content; various types of a observation actions, such as accessing orviewing profile pages, media, or other suitable content; various typesof coincidence information about two or more social-graph entities, suchas being in the same group, tagged in the same photograph, checked-in atthe same location, or attending the same event; or other suitableactions. Although this disclosure describes measuring affinity in aparticular manner, this disclosure contemplates measuring affinity inany suitable manner.

In particular embodiments, social networking system 1202 may use avariety of factors to calculate a coefficient. These factors mayinclude, for example, user actions, types of relationships betweenobjects, location information, other suitable factors, or anycombination thereof. In particular embodiments, different factors may beweighted differently when calculating the coefficient. The weights foreach factor may be static or the weights may change according to, forexample, the user, the type of relationship, the type of action, theuser's location, and so forth. Ratings for the factors may be combinedaccording to their weights to determine an overall coefficient for theuser. As an example and not by way of limitation, particular useractions may be assigned both a rating and a weight while a relationshipassociated with the particular user action is assigned a rating and acorrelating weight (e.g., so the weights total 130%). To calculate thecoefficient of a user towards a particular object, the rating assignedto the user's actions may comprise, for example, 60% of the overallcoefficient, while the relationship between the user and the object mayinclude 40% of the overall coefficient. In particular embodiments, thesocial networking system 1202 may consider a variety of variables whendetermining weights for various factors used to calculate a coefficient,such as, for example, the time since information was accessed, decayfactors, frequency of access, relationship to information orrelationship to the object about which information was accessed,relationship to social-graph entities connected to the object, short- orlong-term averages of user actions, user feedback, other suitablevariables, or any combination thereof. As an example and not by way oflimitation, a coefficient may include a decay factor that causes thestrength of the signal provided by particular actions to decay withtime, such that more recent actions are more relevant when calculatingthe coefficient. The ratings and weights may be continuously updatedbased on continued tracking of the actions upon which the coefficient isbased. Any type of process or algorithm may be employed for assigning,combining, averaging, and so forth the ratings for each factor and theweights assigned to the factors. In particular embodiments, socialnetworking system 1202 may determine coefficients using machine-learningalgorithms trained on historical actions and past user responses, ordata farmed from users by exposing them to various options and measuringresponses. Although this disclosure describes calculating coefficientsin a particular manner, this disclosure contemplates calculatingcoefficients in any suitable manner.

In particular embodiments, social networking system 1202 may calculate acoefficient based on a user's actions. Social networking system 1202 maymonitor such actions on the online social network, on a third-partysystem 1208, on other suitable systems, or any combination thereof. Anysuitable type of user actions may be tracked or monitored. Typical useractions include viewing profile pages, creating or posting content,interacting with content, joining groups, listing and confirmingattendance at events, checking-in at locations, liking particular pages,creating pages, and performing other tasks that facilitate socialaction. In particular embodiments, social networking system 1202 maycalculate a coefficient based on the user's actions with particulartypes of content. The content may be associated with the online socialnetwork, a third-party system 1208, or another suitable system. Thecontent may include users, profile pages, posts, news stories,headlines, instant messages, chat room conversations, emails,advertisements, pictures, video, music, other suitable objects, or anycombination thereof. Social networking system 1202 may analyze a user'sactions to determine whether one or more of the actions indicate anaffinity for subject matter, content, other users, and so forth. As anexample and not by way of limitation, if a user may make frequentlyposts content related to “coffee” or variants thereof, social networkingsystem 1202 may determine the user has a high coefficient with respectto the concept “coffee.” Particular actions or types of actions may beassigned a higher weight and/or rating than other actions, which mayaffect the overall calculated coefficient. As an example and not by wayof limitation, if a first user emails a second user, the weight or therating for the action may be higher than if the first user simply viewsthe user-profile page for the second user.

In particular embodiments, social networking system 1202 may calculate acoefficient based on the type of relationship between particularobjects. Referencing the social graph 1300, social networking system1202 may analyze the number and/or type of edges 1306 connectingparticular user nodes 1302 and concept nodes 1304 when calculating acoefficient. As an example and not by way of limitation, user nodes 1302that are connected by a spouse-type edge (representing that the twousers are married) may be assigned a higher coefficient than user nodes1302 that are connected by a friend-type edge. In other words, dependingupon the weights assigned to the actions and relationships for theparticular user, the overall affinity may be determined to be higher forcontent about the user's spouse than for content about the user'sfriend. In particular embodiments, the relationships a user has withanother object may affect the weights and/or the ratings of the user'sactions with respect to calculating the coefficient for that object. Asan example and not by way of limitation, if a user is tagged in firstphoto, but merely likes a second photo, social networking system 1202may determine that the user has a higher coefficient with respect to thefirst photo than the second photo because having a tagged-in-typerelationship with content may be assigned a higher weight and/or ratingthan having a like-type relationship with content. In particularembodiments, social networking system 1202 may calculate a coefficientfor a first user based on the relationship one or more second users havewith a particular object. In other words, the connections andcoefficients other users have with an object may affect the first user'scoefficient for the object. As an example and not by way of limitation,if a first user is connected to or has a high coefficient for one ormore second users, and those second users are connected to or have ahigh coefficient for a particular object, social networking system 1202may determine that the first user should also have a relatively highcoefficient for the particular object. In particular embodiments, thecoefficient may be based on the degree of separation between particularobjects. Degree of separation between any two nodes is defined as theminimum number of hops required to traverse the social graph from onenode to the other. A degree of separation between two nodes can beconsidered a measure of relatedness between the users or the conceptsrepresented by the two nodes in the social graph. For example, two usershaving user nodes that are directly connected by an edge (i.e., arefirst-degree nodes) may be described as “connected users” or “friends.”Similarly, two users having user nodes that are connected only throughanother user node (i.e., are second-degree nodes) may be described as“friends of friends.” The lower coefficient may represent the decreasinglikelihood that the first user will share an interest in content objectsof the user that is indirectly connected to the first user in the socialgraph 1300. As an example and not by way of limitation, social-graphentities that are closer in the social graph 1300 (i.e., fewer degreesof separation) may have a higher coefficient than entities that arefurther apart in the social graph 1300.

In particular embodiments, social networking system 1202 may calculate acoefficient based on location information. Objects that aregeographically closer to each other may be considered to be morerelated, or of more interest, to each other than more distant objects.In particular embodiments, the coefficient of a user towards aparticular object may be based on the proximity of the object's locationto a current location associated with the user (or the location of aclient system 1206 of the user). A first user may be more interested inother users or concepts that are closer to the first user. As an exampleand not by way of limitation, if a user is one mile from an airport andtwo miles from a gas station, social networking system 1202 maydetermine that the user has a higher coefficient for the airport thanthe gas station based on the proximity of the airport to the user.

In particular embodiments, social networking system 1202 may performparticular actions with respect to a user based on coefficientinformation. Coefficients may be used to predict whether a user willperform a particular action based on the user's interest in the action.A coefficient may be used when generating or presenting any type ofobjects to a user, such as advertisements, search results, news stories,media, messages, notifications, or other suitable objects. Thecoefficient may also be utilized to rank and order such objects, asappropriate. In this way, social networking system 1202 may provideinformation that is relevant to user's interests and currentcircumstances, increasing the likelihood that they will find suchinformation of interest. In particular embodiments, social networkingsystem 1202 may generate content based on coefficient information.Content objects may be provided or selected based on coefficientsspecific to a user. As an example and not by way of limitation, thecoefficient may be used to generate media for the user, where the usermay be presented with media for which the user has a high overallcoefficient with respect to the media object. As another example and notby way of limitation, the coefficient may be used to generateadvertisements for the user, where the user may be presented withadvertisements for which the user has a high overall coefficient withrespect to the advertised object. In particular embodiments, socialnetworking system 1202 may generate search results based on coefficientinformation. Search results for a particular user may be scored orranked based on the coefficient associated with the search results withrespect to the querying user. As an example and not by way oflimitation, search results corresponding to objects with highercoefficients may be ranked higher on a search-results page than resultscorresponding to objects having lower coefficients.

In particular embodiments, social networking system 1202 may calculate acoefficient in response to a request for a coefficient from a particularsystem or process. To predict the likely actions a user may take (or maybe the subject of) in a given situation, any process may request acalculated coefficient for a user. The request may also include a set ofweights to use for various factors used to calculate the coefficient.This request may come from a process running on the online socialnetwork, from a third-party system 1208 (e.g., via an API or othercommunication channel), or from another suitable system. In response tothe request, social networking system 1202 may calculate the coefficient(or access the coefficient information if it has previously beencalculated and stored). In particular embodiments, social networkingsystem 1202 may measure an affinity with respect to a particularprocess. Different processes (both internal and external to the onlinesocial network) may request a coefficient for a particular object or setof objects. Social networking system 1202 may provide a measure ofaffinity that is relevant to the particular process that requested themeasure of affinity. In this way, each process receives a measure ofaffinity that is tailored for the different context in which the processwill use the measure of affinity.

In connection with social-graph affinity and affinity coefficients,particular embodiments may utilize one or more systems, components,elements, functions, methods, operations, or steps disclosed in U.S.patent application Ser. No. 11/503,093, filed Aug. 8, 2006, U.S. patentapplication Ser. No. 12/977,027, filed Dec. 22, 2010, U.S. patentapplication Ser. No. 12/978,265, filed Dec. 11, 2010, and U.S. patentapplication Ser. No. 13/632,869, field Oct. 1, 2012, each of which isincorporated by reference in their entirety.

In particular embodiments, one or more of the content objects of theonline social network may be associated with a privacy setting. Theprivacy settings (or “access settings”) for an object may be stored inany suitable manner, such as, for example, in association with theobject, in an index on an authorization server, in another suitablemanner, or any combination thereof. A privacy setting of an object mayspecify how the object (or particular information associated with anobject) can be accessed (e.g., viewed or shared) using the online socialnetwork. Where the privacy settings for an object allow a particularuser to access that object, the object may be described as being“visible” with respect to that user. As an example and not by way oflimitation, a user of the online social network may specify privacysettings for a user-profile page identify a set of users that may accessthe work experience information on the user-profile page, thus excludingother users from accessing the information. In particular embodiments,the privacy settings may specify a “blocked list” of users that shouldnot be allowed to access certain information associated with the object.In other words, the blocked list may specify one or more users orentities for which an object is not visible. As an example and not byway of limitation, a user may specify a set of users that may not accessphotos albums associated with the user, thus excluding those users fromaccessing the photo albums (while also possibly allowing certain usersnot within the set of users to access the photo albums). In particularembodiments, privacy settings may be associated with particularsocial-graph elements. Privacy settings of a social-graph element, suchas a node or an edge, may specify how the social-graph element,information associated with the social-graph element, or content objectsassociated with the social-graph element can be accessed using theonline social network. As an example and not by way of limitation, aparticular concept node 1304 corresponding to a particular photo mayhave a privacy setting specifying that the photo may only be accessed byusers tagged in the photo and their friends. In particular embodiments,privacy settings may allow users to opt in or opt out of having theiractions logged by social networking system 1202 or shared with othersystems (e.g., third-party system 1208). In particular embodiments, theprivacy settings associated with an object may specify any suitablegranularity of permitted access or denial of access. As an example andnot by way of limitation, access or denial of access may be specifiedfor particular users (e.g., only me, my roommates, and my boss), userswithin a particular degrees-of-separation (e.g., friends, orfriends-of-friends), user groups (e.g., the gaming club, my family),user networks (e.g., employees of particular employers, students oralumni of particular university), all users (“public”), no users(“private”), users of third-party systems 1208, particular applications(e.g., third-party applications, external websites), other suitableusers or entities, or any combination thereof. Although this disclosuredescribes using particular privacy settings in a particular manner, thisdisclosure contemplates using any suitable privacy settings in anysuitable manner.

In particular embodiments, one or more servers may beauthorization/privacy servers for enforcing privacy settings. Inresponse to a request from a user (or other entity) for a particularobject stored in a data store, social networking system 1202 may send arequest to the data store for the object. The request may identify theuser associated with the request and may only be sent to the user (or aclient system 1206 of the user) if the authorization server determinesthat the user is authorized to access the object based on the privacysettings associated with the object. If the requesting user is notauthorized to access the object, the authorization server may preventthe requested object from being retrieved from the data store, or mayprevent the requested object from be sent to the user. In the searchquery context, an object may only be generated as a search result if thequerying user is authorized to access the object. In other words, theobject must have a visibility that is visible to the querying user. Ifthe object has a visibility that is not visible to the user, the objectmay be excluded from the search results. Although this disclosuredescribes enforcing privacy settings in a particular manner, thisdisclosure contemplates enforcing privacy settings in any suitablemanner.

The foregoing specification is described with reference to specificexemplary embodiments thereof. Various embodiments and aspects of thedisclosure are described with reference to details discussed herein, andthe accompanying drawings illustrate the various embodiments. Thedescription above and drawings are illustrative and are not to beconstrued as limiting. Numerous specific details are described toprovide a thorough understanding of various embodiments.

The additional or alternative embodiments may be embodied in otherspecific forms without departing from its spirit or essentialcharacteristics. The described embodiments are to be considered in allrespects only as illustrative and not restrictive. The scope of theinvention is, therefore, indicated by the appended claims rather than bythe foregoing description. All changes that come within the meaning andrange of equivalency of the claims are to be embraced within theirscope.

What is claimed is:
 1. A computer-implemented method comprising: receiving related media streams from client devices associated with corresponding capturing users; identifying a first media stream from the related media streams based on a media characteristic of the first media stream, wherein the first media stream comprises a live media stream or a media stream delayed up to ten seconds; providing, to a client device associated with a viewing user, a media presentation comprising the first media stream; identifying, by at least one processor during the media presentation, a second media stream from the related media streams based on a media characteristic of the second media stream, wherein the second media stream comprises a live media stream or a media stream delayed up to ten seconds; determining that the first media stream and the second media stream are being captured at a common location and are capturing common subject matter based on one or more device characteristics and one or more media characteristics of the first media stream and the second media stream, the one or more media characteristics including an identifiable visual feature within both the first media stream and the second media stream; selecting, based on identifying the second media stream and based on the media characteristic of the second media stream, audio from the second media stream; updating the media presentation to include the audio from the second media stream; and providing, to the client device associated with the viewing user, the updated media presentation comprising the audio from the second media stream along with video from the first media stream.
 2. The method of claim 1, wherein determining that the first media stream and the second media stream are being captured at the common location and are capturing common subject matter based the one or more device characteristics comprises determining, based on gyroscopic information corresponding to the client device and gyroscopic information corresponding to the client device and gyroscopic information corresponding to a second client device capturing the second media stream, that the client device and the second client device are capturing common subject matter.
 3. The method of claim 1, wherein updating the media stream comprises augmenting the audio from the first media stream with audio from the second media stream within the media presentation by combining the audio from the first media stream with the audio from the second media stream.
 4. The method of claim 1, further comprising: analyzing the related media streams in real time to detect media quality characteristics related to each media stream; and comparing, for a given time period, a media quality characteristic of the first media stream to a media quality characteristic of the second media stream; wherein updating the media presentation is based on the media quality characteristic of the second media stream being superior to the media quality characteristic of the first media stream.
 5. The method of claim 4, wherein the media quality characteristic of the second media stream is an audio quality characteristic.
 6. The method of claim 4, wherein the media quality characteristic of the first media stream is a time-based media quality characteristic that is generated in real time by: detecting a change to the first media stream between a previous time period and a current time period; and generating an updated media quality characteristic for the first media stream for the current time period based on the change to the first media stream.
 7. The method of claim 1, further comprising: receiving a plurality of media streams from a plurality of client devices associated with a plurality of users; generating one or more media characteristics for each of the plurality of media streams; analyzing the one or more media characteristics for each of the plurality of media streams to determine a subset of media streams that share a correspondence to an attribute associated with the viewing user; and determining that the subset of media streams are the related media streams.
 8. The method of claim 1, wherein determining that the first media stream and the second media stream are being captured at the common location and are capturing common subject matter based on visual data of the first media stream and the second media stream comprises utilizing facial recognition to determine that the first media stream and the second media stream both include a common person.
 9. The method of claim 1, wherein determining that the first media stream and the second media stream are being captured at the common location and are capturing common subject matter based the one or more device characteristics comprises utilizing a cardinal direction of the client device and a cardinal direction of a second client device capturing the second media stream to determine that the client device and the second client device are capturing common subject matter.
 10. The method of claim 1, wherein determining that the first media stream and the second media stream are being captured at the common location and are capturing common subject matter based the one or more device characteristics comprises utilizing a GPS location of the client device and a GPS location of a second client device capturing the second media stream to determine that the client device and the second client device are at the common location.
 11. A non-transitory computer-readable medium storing instructions thereon that, when executed by at least one processor, cause a computer system to: receive related media streams from client devices associated with corresponding capturing users; identify a first media stream from the related media streams based on a media characteristic of the first media stream, wherein the first media stream comprises a live media stream or a media stream delayed up to ten seconds; provide, to a client device associated with a viewing user, a media presentation comprising the first media stream; identify, during the media presentation, a second media stream from the related media streams based on a media characteristic of the second media stream, wherein the second media stream comprises a live media stream or a media stream delayed up to ten seconds; determine that the first media stream and the second media stream are being captured at a common location and are capturing common subject matter based on one or more device characteristics and one or more media characteristics of the first media stream and the second media stream, the one or more media characteristics including an identifiable visual feature within both the first media stream and the second media stream; select, based on identifying the second media stream and based on the media characteristic of the second media stream, audio from the second media stream; updating the media presentation to include the audio from the second media stream; and provide, to the client device associated with the viewing user, the updated media presentation comprising the audio from the second media stream along with video from the first media stream.
 12. The non-transitory computer-readable medium of claim 11, further comprising instructions that, when executed by the at least one processor, cause the computer system to determine that the first media stream and the second media stream are being captured at the common location and are capturing common subject matter based the one or more device characteristics by determining, based on gyroscopic information corresponding to the client device and gyroscopic information corresponding to the client device and gyroscopic information corresponding to a second client device capturing the second media stream, that the client device and the second client device are capturing common subject matter.
 13. The non-transitory computer-readable medium of claim 11, wherein updating the media presentation is based on a quality characteristic of the second media stream being superior to a quality characteristic of the first media stream.
 14. The non-transitory computer-readable medium of claim 11, further comprising instructions that, when executed by the at least one processor, cause the computer system to augment the audio from the first media stream with the audio from the second media stream within the media presentation by combining the audio from the first media stream with the audio from the second media stream.
 15. The non-transitory computer-readable medium of claim 11, further comprising instructions that, when executed by the at least one processor, cause the computer system to: receive a plurality of media streams from a plurality of client devices associated with a plurality of users; generate one or more media characteristics for each of the plurality of media streams; analyze the one or more media characteristics for each of the plurality of media streams to determine a subset of media streams that share a correspondence to an attribute associated with the viewing user; and determine that the subset of media streams are the related media streams.
 16. A system comprising: at least one processor; and at least one non-transitory computer-readable storage medium storing instructions thereon that, when executed by the at least one processor, cause the system to: receive related media streams from client devices associated with corresponding capturing users; identify a first media stream from the related media streams based on a media characteristic of the first media stream, wherein the first media stream comprises a live media stream or a media stream delayed up to ten seconds; provide, to a client device associated with a viewing user, a media presentation comprising the first media stream; identify, during the media presentation, a second media stream from the related media streams based on a media characteristic of the second media stream, wherein the second media stream comprises a live media stream or a media stream delayed up to ten seconds; determine that the first media stream and the second media stream are being captured at a common location and are capturing common subject matter based on one or more device characteristics and one or more media characteristics of the first media stream and the second media stream, the one or more media characteristics including an identifiable visual feature within both the first media stream and the second media stream; select, based on identifying the second media stream and based on the media characteristic of the second media stream, audio from the second media stream; updating the media presentation to include the audio from the second media stream; and provide, to the client device associated with the viewing user, the updated media presentation comprising the audio from the second media stream along with video from the first media stream.
 17. The system of claim 16, further comprising instructions that, when executed by the at least one processor, cause the system to: analyze the related media streams in real time to detect media quality characteristics related to each media stream; and compare, for a given time period, a media quality characteristic of the first media stream to a quality media characteristic of the second media stream; wherein updating the media presentation is based on the media quality characteristic of the second media stream being superior to the media quality characteristic of the first media stream.
 18. The system of claim 17, wherein the media quality characteristic of the second media stream is an audio quality characteristic.
 19. The system of claim 17, wherein the media quality characteristic of the first media stream is a time-based media quality characteristic that is generated in real time by: detecting a change to the first media stream between a previous time period and a current time period; and generating an updated media quality characteristic for the first media stream for the current time period based on the change to the first media stream.
 20. The system of claim 16, further comprising instructions that, when executed by the at least one processor, cause the system to determine that the first media stream and the second media stream are being captured at the common location and are capturing common subject matter based the one or more device characteristics by determining, based on gyroscopic information corresponding to the client device and gyroscopic information corresponding to the client device and gyroscopic information corresponding to a second client device capturing the second media stream, that the client device and the second client device are capturing common subject matter. 